fix(gateway): guard against None request_overrides in _build_api_kwargs

This commit is contained in:
konsisumer 2026-04-28 14:16:18 +02:00 committed by kshitij
parent 1d8b9e6458
commit e4b69bf149
3 changed files with 12 additions and 4 deletions

View file

@ -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] = []

View file

@ -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

View file

@ -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):