From 86c5de17bcfb601ad6cbf12b97129a2bcf2773e5 Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Fri, 29 Aug 2025 14:53:07 -0700 Subject: [PATCH] fix(handle_jwt.py): document the raw received jwt token --- litellm/proxy/auth/handle_jwt.py | 43 +++++++++++++++++++------------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/litellm/proxy/auth/handle_jwt.py b/litellm/proxy/auth/handle_jwt.py index 4cda2bb8e3a..f20c3debc23 100644 --- a/litellm/proxy/auth/handle_jwt.py +++ b/litellm/proxy/auth/handle_jwt.py @@ -414,7 +414,16 @@ class JWTHandler: if cached_keys is None: response = await self.http_handler.get(key_url) - response_json = response.json() + try: + response_json = response.json() + except Exception as e: + verbose_proxy_logger.error( + f"Error parsing response: {e}. Original Response: {response.text}" + ) + raise Exception( + f"Error parsing response: {e}. Check server logs for original response." + ) + if "keys" in response_json: keys: JWKKeyValue = response.json()["keys"] else: @@ -904,7 +913,7 @@ class JWTAuthManager: if end_user_id else None ) - + team_membership_object: Optional[LiteLLM_TeamMembership] = None if user_id and team_id: team_membership_object = ( @@ -1145,19 +1154,21 @@ class JWTAuthManager: ) # Get other objects - user_object, org_object, end_user_object, team_membership_object = await JWTAuthManager.get_objects( - user_id=user_id, - user_email=user_email, - org_id=org_id, - end_user_id=end_user_id, - team_id=team_id, - valid_user_email=valid_user_email, - jwt_handler=jwt_handler, - prisma_client=prisma_client, - user_api_key_cache=user_api_key_cache, - parent_otel_span=parent_otel_span, - proxy_logging_obj=proxy_logging_obj, - route=route, + user_object, org_object, end_user_object, team_membership_object = ( + await JWTAuthManager.get_objects( + user_id=user_id, + user_email=user_email, + org_id=org_id, + end_user_id=end_user_id, + team_id=team_id, + valid_user_email=valid_user_email, + jwt_handler=jwt_handler, + prisma_client=prisma_client, + user_api_key_cache=user_api_key_cache, + parent_otel_span=parent_otel_span, + proxy_logging_obj=proxy_logging_obj, + route=route, + ) ) await JWTAuthManager.sync_user_role_and_teams( @@ -1186,8 +1197,6 @@ class JWTAuthManager: is_proxy_admin = True else: is_proxy_admin = False - - return JWTAuthBuilderResult( is_proxy_admin=is_proxy_admin,