From c8f394208bfbda2025b00dd1ba9f44ad5c55ca0a Mon Sep 17 00:00:00 2001 From: Mason Daugherty Date: Wed, 4 Mar 2026 16:05:30 -0500 Subject: [PATCH] fix(openrouter): include role in sdk `model_construct` for min dep compat (#35562) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix `_wrap_messages_for_sdk` stripping `role` before `model_construct` — on `openrouter==0.6.0` (minimum dep), the SDK models don't auto-populate a default `role`, so `model_dump()` omitted it entirely, causing `KeyError: 'role'` in pre-release checks. --- libs/partners/openrouter/langchain_openrouter/chat_models.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libs/partners/openrouter/langchain_openrouter/chat_models.py b/libs/partners/openrouter/langchain_openrouter/chat_models.py index 13846b4ab03..b67bc2be236 100644 --- a/libs/partners/openrouter/langchain_openrouter/chat_models.py +++ b/libs/partners/openrouter/langchain_openrouter/chat_models.py @@ -969,8 +969,7 @@ def _wrap_messages_for_sdk( # Unknown role — pass dict through and hope for the best. wrapped.append(msg) continue - fields = {k: v for k, v in msg.items() if k != "role"} - wrapped.append(model_cls.model_construct(**fields)) + wrapped.append(model_cls.model_construct(**msg)) return wrapped