From 55191d6f19dec566f3086b15a08756fb355b4548 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 6 May 2026 14:22:00 +0000 Subject: [PATCH] fix(usage_ai_chat): honor pass_through_all_models in router dispatch --- .../usage_endpoints/ai_usage_chat.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/litellm/proxy/management_endpoints/usage_endpoints/ai_usage_chat.py b/litellm/proxy/management_endpoints/usage_endpoints/ai_usage_chat.py index 46e378a8f11..5d0b569b140 100644 --- a/litellm/proxy/management_endpoints/usage_endpoints/ai_usage_chat.py +++ b/litellm/proxy/management_endpoints/usage_endpoints/ai_usage_chat.py @@ -438,6 +438,17 @@ async def _acompletion(**kwargs: Any) -> Any: from litellm.proxy.proxy_server import llm_router if llm_router is not None: + # Honor `pass_through_all_models`: if the model isn't managed by the + # router, fall back to litellm.acompletion just like route_llm_request + # does. Otherwise proxies that route some models via the router but + # allow pass-through for everything else would 400 here. + model = kwargs.get("model") + if ( + llm_router.router_general_settings.pass_through_all_models + and model not in llm_router.model_names + and not llm_router.has_model_id(model or "") + ): + return await litellm.acompletion(**kwargs) return await llm_router.acompletion(**kwargs) return await litellm.acompletion(**kwargs)