BerriAI/litellm · error · HTTPException

{key} must be a finite number. Received: {value}

Error message

{key} must be a finite number. Received: {value}

What it means

Error "{key} must be a finite number. Received: {value}" thrown in BerriAI/litellm.

Source

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

def _enforce_upperbound_key_params(
    data: GenerateKeyRequest | UpdateKeyRequest,
    fill_defaults: bool = True,
) -> None:
    """
    Enforce upperbound limits on key parameters.

    For key generation (fill_defaults=True): fills None values with upperbound defaults.
    For key update (fill_defaults=False): only validates explicitly provided values.
    """
    # Always reject NaN / Inf regardless of whether an upperbound config is set
    # (GHSA-2rv4-xv66-fpjg): float('nan') passes every `< 0` check because
    # nan < 0 is False, and spend >= nan is always False, permanently disabling
    # budget enforcement for any key that carries it.
    for elem in data:
        key, value = elem
        if key in _BUDGET_NUMERIC_KEYS and value is not None:
            if not math.isfinite(value):
                raise HTTPException(
                    status_code=400,
                    detail={"error": f"{key} must be a finite number. Received: {value}"},
                )

    if litellm.upperbound_key_generate_params is None:
        return

    for elem in data:
        key, value = elem
        upperbound_value = getattr(litellm.upperbound_key_generate_params, key, None)
        if upperbound_value is not None:
            if value is None:
                if fill_defaults:
                    setattr(data, key, upperbound_value)
            else:
                if key in [
                    "max_budget",
                    "max_parallel_requests",

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Provide a finite numeric value for the field (not NaN or infinity).
  2. Validate numeric inputs client-side before sending.

When it happens

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