From c91a546d88f4b9f5fc9d7d0718308ad69f253a3a Mon Sep 17 00:00:00 2001 From: LifeJiggy Date: Mon, 18 May 2026 16:05:05 +0100 Subject: [PATCH] fix(api_server): pop model from runtime_kwargs to prevent kwarg collision with explicit model= When the primary provider auth fails (e.g. OAuth token exhausted), _try_resolve_fallback_provider() returns a dict that includes 'model'. _resolve_runtime_agent_kwargs() passes this through, and _create_agent() then passes both model=model and **runtime_kwargs to AIAgent(), causing TypeError on the second turn of a session. Mirrors the existing pattern in _resolve_session_agent_runtime() (gateway/run.py:1866) which already pops model from runtime_kwargs. Fixes #27540. --- gateway/platforms/api_server.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gateway/platforms/api_server.py b/gateway/platforms/api_server.py index 0668896e170f7..9daf68a5d3c44 100644 --- a/gateway/platforms/api_server.py +++ b/gateway/platforms/api_server.py @@ -878,8 +878,11 @@ def _create_agent( from hermes_cli.tools_config import _get_platform_tools runtime_kwargs = _resolve_runtime_agent_kwargs() + runtime_model = runtime_kwargs.pop("model", None) reasoning_config = GatewayRunner._load_reasoning_config() model = _resolve_gateway_model() + if runtime_model: + model = runtime_model user_config = _load_gateway_config() enabled_toolsets = sorted(_get_platform_tools(user_config, "api_server"))