BerriAI/litellm · error · HTTPException

Team member role {team_member_object.role} not in allowed_te

Error message

Team member role {team_member_object.role} not in allowed_team_member_roles={team_key_generation['allowed_team_member_roles']}

What it means

Error "Team member role {team_member_object.role} not in allowed_team_member_roles={team_key_generation['allowed_team_member_roles']}" thrown in BerriAI/litellm.

Source

Thrown at litellm/proxy/management_endpoints/key_management_endpoints.py:371

    team_member_object: Final = _get_user_in_team(team_table=team_table, user_id=user_api_key_dict.user_id)

    is_admin: Final = (
        user_api_key_dict.user_role is not None and user_api_key_dict.user_role == LitellmUserRoles.PROXY_ADMIN.value
    )

    if is_admin:
        return True
    elif team_member_object is None:
        raise HTTPException(
            status_code=400,
            detail=f"User={user_api_key_dict.user_id} not assigned to team={team_table.team_id}",
        )
    elif (
        "allowed_team_member_roles" in team_key_generation
        and team_member_object.role not in team_key_generation["allowed_team_member_roles"]
    ):
        raise HTTPException(
            status_code=400,
            detail=f"Team member role {team_member_object.role} not in allowed_team_member_roles={team_key_generation['allowed_team_member_roles']}",
        )

    TeamMemberPermissionChecks.does_team_member_have_permissions_for_endpoint(
        team_member_object=team_member_object,
        team_table=team_table,
        route=route,
    )
    return True


def _key_generation_required_param_check(data: GenerateKeyRequest, required_params: list[str] | None):
    if required_params is None:
        return True

    data_dict: Final = data.model_dump(exclude_unset=True)
    for param in required_params:

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Use a team member whose role is in allowed_team_member_roles.
  2. Ask the proxy admin to adjust team_key_generation.allowed_team_member_roles.

When it happens

Trigger: Thrown at litellm/proxy/management_endpoints/key_management_endpoints.py:371 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/0ce749a7db3b6689. Report an issue: GitHub.