From 91dde59bc32827513e41d0afc9f515be7201fd6d Mon Sep 17 00:00:00 2001 From: yassin Date: Tue, 15 Sep 2026 22:48:47 +0000 Subject: [PATCH] refactor(proxy): validate request metadata before reconstructing key rate-limit view Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- litellm/proxy/hooks/parallel_request_limiter_v3.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/litellm/proxy/hooks/parallel_request_limiter_v3.py b/litellm/proxy/hooks/parallel_request_limiter_v3.py index ea1ef6f9196..f72720b4726 100644 --- a/litellm/proxy/hooks/parallel_request_limiter_v3.py +++ b/litellm/proxy/hooks/parallel_request_limiter_v3.py @@ -2918,14 +2918,16 @@ class _PROXY_MaxParallelRequestsHandler_v3(CustomLogger): def _key_owns_model_tpm_limit_from_request_metadata( self, - request_metadata: dict[str, Any], + request_metadata: Mapping[str, object], model_group: str | None, ) -> bool: if model_group is None: return False - key_view: Final = UserAPIKeyAuth( - metadata=request_metadata.get("user_api_key_metadata") or {}, - model_max_budget=request_metadata.get("user_api_key_model_max_budget") or {}, + key_view: Final = UserAPIKeyAuth.model_validate( + { + "metadata": request_metadata.get("user_api_key_metadata") or {}, + "model_max_budget": request_metadata.get("user_api_key_model_max_budget") or {}, + } ) return self._key_owns_model_limit(key_view, model_group, "model_tpm_limit")