BerriAI/litellm · error · ValueError

At least one of 'keys' or 'key_aliases' must be provided.

Error message

At least one of 'keys' or 'key_aliases' must be provided.

What it means

Pydantic model_validator (validate_at_least_one) on KeyRequest rejecting a bulk request whose 'keys' and 'key_aliases' are both empty/None. Endpoints consuming this model operate on existing keys in bulk (delete/rotate/etc.), so a request naming zero keys is rejected up front instead of being treated as a no-op success.

Source

Thrown at litellm/proxy/_types.py:1269

    spend: float | None = None
    metadata: dict | None = None
    new_master_key: str | None = None
    grace_period: str | None = None  # Duration to keep old key valid (e.g. "24h", "2d"); None = immediate revoke


class ResetSpendRequest(LiteLLMPydanticObjectBase):
    reset_to: float


class KeyRequest(LiteLLMPydanticObjectBase):
    keys: list[str] | None = None
    key_aliases: list[str] | None = None

    @model_validator(mode="before")
    @classmethod
    def validate_at_least_one(cls, values):
        if not values.get("keys") and not values.get("key_aliases"):
            raise ValueError("At least one of 'keys' or 'key_aliases' must be provided.")
        return values


from litellm.models.model import (  # noqa: E402
    LiteLLM_ProxyModelTable as LiteLLM_ProxyModelTable,
)
from litellm.models.team import LiteLLM_ModelTable as LiteLLM_ModelTable  # noqa: E402


# MCP Types
class SpecialMCPServerName(str, enum.Enum):
    all_team_servers = "all-team-mcpservers"
    all_proxy_servers = "all-proxy-mcpservers"


class MCPApprovalStatus(str, enum.Enum):
    pending_review = "pending_review"
    active = "active"

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Provide at least one of 'keys' or 'key_aliases'.

Example fix

keys=['sk-...']
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at litellm/proxy/_types.py:1269 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/ad03805854d18294. Report an issue: GitHub.