From e4b69bf149290eaf423e658cf285fb024262b2d4 Mon Sep 17 00:00:00 2001 From: konsisumer Date: Tue, 28 Apr 2026 14:16:18 +0200 Subject: [PATCH] fix(gateway): guard against None request_overrides in _build_api_kwargs --- gateway/run.py | 6 +++--- tests/gateway/test_fast_command.py | 2 +- tests/run_agent/test_provider_parity.py | 8 ++++++++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/gateway/run.py b/gateway/run.py index 886c39d1e9..ff22395882 100644 --- a/gateway/run.py +++ b/gateway/run.py @@ -1271,14 +1271,14 @@ class GatewayRunner: service_tier = getattr(self, "_service_tier", None) if not service_tier: - route["request_overrides"] = None + route["request_overrides"] = {} return route try: overrides = resolve_fast_mode_overrides(route["model"]) except Exception: overrides = None - route["request_overrides"] = overrides + route["request_overrides"] = overrides or {} return route async def _handle_adapter_fatal_error(self, adapter: BasePlatformAdapter) -> None: @@ -10604,7 +10604,7 @@ class GatewayRunner: agent.status_callback = _status_callback_sync agent.reasoning_config = reasoning_config agent.service_tier = self._service_tier - agent.request_overrides = turn_route.get("request_overrides") + agent.request_overrides = turn_route.get("request_overrides") or {} _bg_review_release = threading.Event() _bg_review_pending: list[str] = [] diff --git a/tests/gateway/test_fast_command.py b/tests/gateway/test_fast_command.py index 82cc4fc649..c904b659d1 100644 --- a/tests/gateway/test_fast_command.py +++ b/tests/gateway/test_fast_command.py @@ -118,7 +118,7 @@ def test_turn_route_skips_priority_processing_for_unsupported_models(): route = gateway_run.GatewayRunner._resolve_turn_agent_config(runner, "hi", "gpt-5.3-codex", runtime_kwargs) - assert route["request_overrides"] is None + assert route["request_overrides"] == {} @pytest.mark.asyncio diff --git a/tests/run_agent/test_provider_parity.py b/tests/run_agent/test_provider_parity.py index 3b4c69a47b..5ad40e8a88 100644 --- a/tests/run_agent/test_provider_parity.py +++ b/tests/run_agent/test_provider_parity.py @@ -251,6 +251,14 @@ class TestBuildApiKwargsChatCompletionsServiceTier: kwargs = agent._build_api_kwargs(messages) assert "service_tier" not in kwargs + def test_no_crash_when_request_overrides_is_none(self, monkeypatch): + agent = _make_agent(monkeypatch, "openrouter") + agent.model = "gpt-4.1" + agent.request_overrides = None + messages = [{"role": "user", "content": "hi"}] + kwargs = agent._build_api_kwargs(messages) + assert "service_tier" not in kwargs + class TestBuildApiKwargsKimiNoTemperatureOverride: def test_kimi_for_coding_omits_temperature(self, monkeypatch):