From 1a03bfba50deec7554552cee6adb5933feb93bfb Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Tue, 14 Jul 2026 17:06:18 +0000 Subject: [PATCH] fix(router): honor explicit priority=0 in acompletion instead of falling back to default --- litellm/router.py | 2 +- tests/test_litellm/test_router.py | 46 +++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/litellm/router.py b/litellm/router.py index 6e8127110cc..19d88d74dbc 100644 --- a/litellm/router.py +++ b/litellm/router.py @@ -1850,7 +1850,7 @@ class Router: kwargs["original_function"] = self._acompletion self._update_kwargs_before_fallbacks(model=model, kwargs=kwargs) - request_priority = kwargs.get("priority") or self.default_priority + request_priority = kwargs.get("priority", self.default_priority) start_time = time.time() _is_prompt_management_model = self._is_prompt_management_model(model) diff --git a/tests/test_litellm/test_router.py b/tests/test_litellm/test_router.py index 9c4d83ff7ea..6de2cdeb3ff 100644 --- a/tests/test_litellm/test_router.py +++ b/tests/test_litellm/test_router.py @@ -5304,3 +5304,49 @@ class TestRouterRequestTimeoutPropagation: ) == 60 ) + + +def _make_priority_router(default_priority): + router = litellm.Router( + model_list=[ + { + "model_name": "gpt-3.5-turbo", + "litellm_params": {"model": "gpt-3.5-turbo"}, + } + ], + default_priority=default_priority, + ) + router.schedule_acompletion = AsyncMock(return_value="scheduled") + router.async_function_with_fallbacks = AsyncMock(return_value="fallbacks") + return router + + +@pytest.mark.asyncio +async def test_acompletion_honors_explicit_priority_zero(): + """priority=0 must route through the scheduler, not be dropped by an `or` default.""" + router = _make_priority_router(default_priority=None) + + result = await router.acompletion( + model="gpt-3.5-turbo", + messages=[{"role": "user", "content": "hi"}], + priority=0, + ) + + assert result == "scheduled" + router.schedule_acompletion.assert_awaited_once() + router.async_function_with_fallbacks.assert_not_awaited() + assert router.schedule_acompletion.await_args.kwargs["priority"] == 0 + + +@pytest.mark.asyncio +async def test_acompletion_missing_priority_falls_back_to_default(): + router = _make_priority_router(default_priority=None) + + result = await router.acompletion( + model="gpt-3.5-turbo", + messages=[{"role": "user", "content": "hi"}], + ) + + assert result == "fallbacks" + router.async_function_with_fallbacks.assert_awaited_once() + router.schedule_acompletion.assert_not_awaited()