{"record":{"id":"6c5ea2d90d3ef9ed","repo":"BerriAI/litellm","slug":"rpm-limit-higher-than-user-max-user-rpm-limit-us","errorCode":null,"errorMessage":"rpm limit higher than user max. User rpm limit={user_api_key_dict.rpm_limit}. User role={user_api_key_dict.user_role}","messagePattern":"rpm limit higher than user max\\. User rpm limit=(.+?)\\. User role=(.+?)","errorType":"http","errorClass":"HTTPException","httpStatus":400,"severity":"error","filePath":"litellm/proxy/management_endpoints/team_endpoints.py","lineNumber":1092,"sourceCode":"    # Validate team TPM/RPM against user's TPM/RPM limits\n    if (\n        data.tpm_limit is not None\n        and user_api_key_dict.tpm_limit is not None\n        and data.tpm_limit > user_api_key_dict.tpm_limit\n    ):\n        raise HTTPException(\n            status_code=400,\n            detail={\n                \"error\": f\"tpm limit higher than user max. User tpm limit={user_api_key_dict.tpm_limit}. User role={user_api_key_dict.user_role}\"\n            },\n        )\n\n    if (\n        data.rpm_limit is not None\n        and user_api_key_dict.rpm_limit is not None\n        and data.rpm_limit > user_api_key_dict.rpm_limit\n    ):\n        raise HTTPException(\n            status_code=400,\n            detail={\n                \"error\": f\"rpm limit higher than user max. User rpm limit={user_api_key_dict.rpm_limit}. User role={user_api_key_dict.user_role}\"\n            },\n        )\n\n\ndef _check_team_budget_update_authority(\n    data: UpdateTeamRequest,\n    user_api_key_dict: UserAPIKeyAuth,\n    existing_team_max_budget: float | None,\n) -> None:\n    \"\"\"\n    Restrict who can grow a standalone team's spend ceiling on /team/update.\n\n    A team admin (already authorized via _verify_team_access) may keep or lower\n    the team budget, but only a proxy admin may grow it - by raising max_budget\n    above the team's current value or by removing the cap (setting it to None).","sourceCodeStart":1074,"sourceCodeEnd":1110,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/proxy/management_endpoints/team_endpoints.py#L1074-L1110","documentation":"Self-service team creation guard comparing the requested team limits against the calling key/user's own tpm/rpm allowance. Here the requested rpm_limit exceeds user_api_key_dict.rpm_limit, so a non-privileged caller is trying to mint a team with a higher rate budget than they themselves hold. Admins (or users without their own limits) are unaffected; the fix is to request a lower rpm_limit or have an admin create the team.","triggerScenarios":"Thrown at litellm/proxy/management_endpoints/team_endpoints.py:1092 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set rpm_limit at or below your user's rpm limit."],"exampleFix":null,"handlingStrategy":"validation","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-14T00:17:10.932Z"}