From 310cca1578d1a89fb4caa19be7e62b4cba223ddf Mon Sep 17 00:00:00 2001 From: yuneng-jiang Date: Mon, 16 Feb 2026 17:22:01 -0800 Subject: [PATCH] address greptile review feedback (greploop iteration 1) - Fix HTTPException swallowed by broad except block in get_user_daily_activity and get_user_daily_activity_aggregated: re-raise HTTPException before the generic handler so 403 status codes propagate correctly - Add status_code assertions in non-admin access tests Co-Authored-By: Claude Opus 4.6 (1M context) --- litellm/proxy/management_endpoints/internal_user_endpoints.py | 4 ++++ .../management_endpoints/test_internal_user_endpoints.py | 2 ++ 2 files changed, 6 insertions(+) diff --git a/litellm/proxy/management_endpoints/internal_user_endpoints.py b/litellm/proxy/management_endpoints/internal_user_endpoints.py index a900c932eff..92694b61214 100644 --- a/litellm/proxy/management_endpoints/internal_user_endpoints.py +++ b/litellm/proxy/management_endpoints/internal_user_endpoints.py @@ -1995,6 +1995,8 @@ async def get_user_daily_activity( timezone_offset_minutes=timezone, ) + except HTTPException: + raise except Exception as e: verbose_proxy_logger.exception( "/spend/daily/analytics: Exception occured - {}".format(str(e)) @@ -2093,6 +2095,8 @@ async def get_user_daily_activity_aggregated( timezone_offset_minutes=timezone, ) + except HTTPException: + raise except Exception as e: verbose_proxy_logger.exception( "/user/daily/activity/aggregated: Exception occured - {}".format(str(e)) diff --git a/tests/test_litellm/proxy/management_endpoints/test_internal_user_endpoints.py b/tests/test_litellm/proxy/management_endpoints/test_internal_user_endpoints.py index e6c18ed7235..0bee3f52f13 100644 --- a/tests/test_litellm/proxy/management_endpoints/test_internal_user_endpoints.py +++ b/tests/test_litellm/proxy/management_endpoints/test_internal_user_endpoints.py @@ -1213,6 +1213,7 @@ async def test_get_user_daily_activity_non_admin_cannot_view_other_users(monkeyp user_api_key_dict=non_admin_key_dict, ) + assert exc_info.value.status_code == 403 assert "Non-admin users can only view their own spend data" in str( exc_info.value.detail ) @@ -1231,6 +1232,7 @@ async def test_get_user_daily_activity_non_admin_cannot_view_other_users(monkeyp user_api_key_dict=non_admin_key_dict, ) + assert exc_info.value.status_code == 403 assert "Non-admin users must provide a user_id" in str(exc_info.value.detail)