BerriAI/litellm · error · ValueError

Provide either `key_ids` or `all_keys_in_team=True`, not bot

Error message

Provide either `key_ids` or `all_keys_in_team=True`, not both.

What it means

Model validator on BulkUpdateTeamKeysRequest: both key_ids and all_keys_in_team=True were provided. The endpoint requires exactly one selection mode — an explicit key list or the whole team — never both.

Source

Thrown at litellm/types/proxy/management_endpoints/key_management_endpoints.py:105

        # Reject empty payload — would iterate every key with no-op writes.
        if not self.model_fields_set:
            raise ValueError("update_fields must specify at least one field to update.")
        return self


class BulkUpdateTeamKeysRequest(BaseModel):
    """Apply one update payload to many keys inside a team; provide either `key_ids` or `all_keys_in_team=True`."""

    team_id: str
    key_ids: list[str] | None = None
    all_keys_in_team: bool = False
    update_fields: KeyUpdateFields

    @model_validator(mode="after")
    def validate_selection(self) -> "BulkUpdateTeamKeysRequest":
        has_key_ids: Final = self.key_ids is not None and len(self.key_ids) > 0
        if has_key_ids and self.all_keys_in_team:
            raise ValueError("Provide either `key_ids` or `all_keys_in_team=True`, not both.")
        if not has_key_ids and not self.all_keys_in_team:
            raise ValueError("Must provide either `key_ids` (non-empty) or `all_keys_in_team=True`.")
        return self

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Pass either key_ids or all_keys_in_team=True, not both together.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at litellm/types/proxy/management_endpoints/key_management_endpoints.py:105 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/d00eb9c91e22c4fe. Report an issue: GitHub.