{"record":{"id":"ffe30302f109c46d","repo":"BerriAI/litellm","slug":"key-must-be-a-finite-number-received-value","errorCode":null,"errorMessage":"{key} must be a finite number. Received: {value}","messagePattern":"(.+?) must be a finite number\\. Received: (.+?)","errorType":"http","errorClass":"HTTPException","httpStatus":400,"severity":"error","filePath":"litellm/proxy/management_endpoints/key_management_endpoints.py","lineNumber":800,"sourceCode":"def _enforce_upperbound_key_params(\n    data: GenerateKeyRequest | UpdateKeyRequest,\n    fill_defaults: bool = True,\n) -> None:\n    \"\"\"\n    Enforce upperbound limits on key parameters.\n\n    For key generation (fill_defaults=True): fills None values with upperbound defaults.\n    For key update (fill_defaults=False): only validates explicitly provided values.\n    \"\"\"\n    # Always reject NaN / Inf regardless of whether an upperbound config is set\n    # (GHSA-2rv4-xv66-fpjg): float('nan') passes every `< 0` check because\n    # nan < 0 is False, and spend >= nan is always False, permanently disabling\n    # budget enforcement for any key that carries it.\n    for elem in data:\n        key, value = elem\n        if key in _BUDGET_NUMERIC_KEYS and value is not None:\n            if not math.isfinite(value):\n                raise HTTPException(\n                    status_code=400,\n                    detail={\"error\": f\"{key} must be a finite number. Received: {value}\"},\n                )\n\n    if litellm.upperbound_key_generate_params is None:\n        return\n\n    for elem in data:\n        key, value = elem\n        upperbound_value = getattr(litellm.upperbound_key_generate_params, key, None)\n        if upperbound_value is not None:\n            if value is None:\n                if fill_defaults:\n                    setattr(data, key, upperbound_value)\n            else:\n                if key in [\n                    \"max_budget\",\n                    \"max_parallel_requests\",","sourceCodeStart":782,"sourceCodeEnd":818,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/proxy/management_endpoints/key_management_endpoints.py#L782-L818","documentation":"Error \"{key} must be a finite number. Received: {value}\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/proxy/management_endpoints/key_management_endpoints.py:800 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Provide a finite numeric value for the field (not NaN or infinity).","Validate numeric inputs client-side before sending."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8","analyzedAt":"2026-08-18T11:44:31.656Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}