BerriAI/litellm · error · HTTPException

Only a proxy admin can raise a team's max_budget. Team's cur

Error message

Only a proxy admin can raise a team's max_budget. Team's current max_budget={existing_team_max_budget}, requested={data.max_budget}.

What it means

Companion guard: a non-proxy-admin team admin requests max_budget higher than the team's existing cap — growth of the spend ceiling. Lowering or keeping the budget is allowed; raising it returns 403 with current and requested values.

Source

Thrown at litellm/proxy/management_endpoints/team_endpoints.py:1129

    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],
) -> bool:
    if user_api_key_dict.user_id is None:
        return False
    if user_api_key_dict.user_role != LitellmUserRoles.PROXY_ADMIN:
        return True
    return general_settings.get("disable_auto_add_proxy_admin_to_teams") is not True

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Use a PROXY_ADMIN key to raise a team's max_budget.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at litellm/proxy/management_endpoints/team_endpoints.py:1129 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/aff0ebcda9526601. Report an issue: GitHub.