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
- Provide a finite numeric value for the field (not NaN or infinity).
- 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.