BerriAI/litellm · error · ProxyException
getattr(e, "message", error_msg)
Error message
getattr(e, "message", error_msg)
What it means
Error "getattr(e, "message", error_msg)" thrown in BerriAI/litellm.
Source
Thrown at litellm/proxy/spend_tracking/spend_management_endpoints.py:2163
elif request.completion_response is not None:
_completion_response: Final = litellm.ModelResponse(**request.completion_response)
_cost = completion_cost(completion_response=_completion_response)
else:
raise HTTPException(
status_code=400,
detail="Bad Request - Either 'model' or 'completion_response' must be provided",
)
return {"cost": _cost}
except Exception as e:
if isinstance(e, HTTPException):
raise ProxyException(
message=getattr(e, "detail", str(e)),
type=getattr(e, "type", "None"),
param=getattr(e, "param", "None"),
code=getattr(e, "status_code", status.HTTP_400_BAD_REQUEST),
)
error_msg: Final = f"{e}"
raise ProxyException(
message=getattr(e, "message", error_msg),
type=getattr(e, "type", "None"),
param=getattr(e, "param", "None"),
code=getattr(e, "status_code", 500),
)
@router.get(
"/spend/logs/v2",
tags=["Budget & Spend Tracking"],
dependencies=[Depends(user_api_key_auth)],
responses={
200: {"model": dict[str, Any]},
},
)
@router.get(
"/spend/logs/ui",
tags=["Budget & Spend Tracking"],View on GitHub (pinned to 77b7c6c40c)
Solutions
- Inspect proxy logs for the underlying exception; fix the request or provider issue and retry.
When it happens
Trigger: Thrown at litellm/proxy/spend_tracking/spend_management_endpoints.py:2163 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/1ca2a3d58f886694.
Report an issue: GitHub.