BerriAI/litellm · error · HTTPException
Only a proxy admin can remove a team's max_budget. Team's cu
Error message
Only a proxy admin can remove a team's max_budget. Team's current max_budget={existing_team_max_budget}. What it means
Budget-growth guard on /team/update: a team admin (authorized but non-proxy-admin) explicitly sets max_budget to None on a team that has a finite cap — removing the spend ceiling. Only proxy admins may do that, so it is refused with 403 naming the current budget.
Source
Thrown at litellm/proxy/management_endpoints/team_endpoints.py:1121
existing_team_max_budget: float | None,
) -> None:
"""
Restrict who can grow a standalone team's spend ceiling on /team/update.
A team admin (already authorized via _verify_team_access) may keep or lower
the team budget, but only a proxy admin may grow it - by raising max_budget
above the team's current value or by removing the cap (setting it to None).
Setting a finite budget on a team that has no cap is a restriction and is
allowed. Org-scoped teams are governed by _check_org_team_limits().
"""
if user_api_key_dict.user_role == LitellmUserRoles.PROXY_ADMIN:
return
if existing_team_max_budget is None:
return
budget_explicitly_set: Final = "max_budget" in (getattr(data, "model_fields_set", None) or set())
if budget_explicitly_set and data.max_budget is None:
raise HTTPException(
status_code=403,
detail={
"error": f"Only a proxy admin can remove a team's max_budget. Team's current max_budget={existing_team_max_budget}."
},
)
if data.max_budget is not None and data.max_budget > existing_team_max_budget:
raise HTTPException(
status_code=403,
detail={
"error": f"Only a proxy admin can raise a team's max_budget. Team's current max_budget={existing_team_max_budget}, requested={data.max_budget}."
},
)
def _should_auto_add_team_creator(
user_api_key_dict: UserAPIKeyAuth,
general_settings: Mapping[str, object],View on GitHub (pinned to 77b7c6c40c)
Solutions
- Use a PROXY_ADMIN key to remove a team's max_budget.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at litellm/proxy/management_endpoints/team_endpoints.py:1121 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of BerriAI/litellm@77b7c6c40c (2026-08-18).
Data as JSON: /api/errors/f59a1824f1731bff.
Report an issue: GitHub.