{"record":{"id":"6f536b4d2a183de2","repo":"BerriAI/litellm","slug":"not-authorized-to-view-team-spend-for-team-id-tea","errorCode":null,"errorMessage":"Not authorized to view team spend for team_id={team_id}","messagePattern":"Not authorized to view team spend for team_id=(.+?)","errorType":"http","errorClass":"HTTPException","httpStatus":403,"severity":"error","filePath":"litellm/proxy/spend_tracking/spend_management_endpoints.py","lineNumber":2454,"sourceCode":"            await _get_permitted_team_ids_for_spend_logs_or_empty(\n                prisma_client=prisma_client,\n                user_api_key_dict=user_api_key_dict,\n            )\n            if user_scope_applies\n            else ()\n        )\n        explicit_user_requires_caller_scope: Final = (\n            user_scope_applies and not permitted_team_ids and user_id is not None\n        )\n        if not is_request_id_lookup and not is_admin_view:\n            if team_id is not None:\n                can_view_team: Final = await _can_team_member_view_log(\n                    prisma_client=prisma_client,\n                    user_api_key_dict=user_api_key_dict,\n                    team_id=team_id,\n                )\n                if not can_view_team:\n                    raise HTTPException(\n                        status_code=status.HTTP_403_FORBIDDEN,\n                        detail={\"error\": f\"Not authorized to view team spend for team_id={team_id}\"},\n                    )\n                where_conditions[\"team_id\"] = team_id\n            elif user_scope_applies:\n                if permitted_team_ids:\n                    if user_id is None:\n                        where_conditions.pop(\"user\", None)\n                    where_conditions[\"OR\"] = [\n                        {\"user\": user_api_key_dict.user_id},\n                        {\"team_id\": {\"in\": permitted_team_ids}},\n                    ]\n                else:\n                    if user_id is None:\n                        where_conditions[\"user\"] = user_api_key_dict.user_id\n                    else:\n                        where_conditions[\"AND\"] = where_conditions.get(\"AND\", []) + [\n                            {\"user\": user_api_key_dict.user_id}","sourceCodeStart":2436,"sourceCodeEnd":2472,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/proxy/spend_tracking/spend_management_endpoints.py#L2436-L2472","documentation":"Error \"Not authorized to view team spend for team_id={team_id}\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/proxy/spend_tracking/spend_management_endpoints.py:2454 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use an API key or user role that has permission to view spend for the given team_id, or ask a proxy admin to grant team spend access.","Verify the team_id in the request matches a team your key/user belongs to."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8","analyzedAt":"2026-08-18T11:44:31.656Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}