BerriAI/litellm · error · ProxyRateLimitError
Session budget exceeded for session {session_id}. Current sp
Error message
Session budget exceeded for session {session_id}. Current spend: ${current_spend:.4f}, max_budget_per_session: ${max_budget:.2f}. What it means
Error "Session budget exceeded for session {session_id}. Current spend: ${current_spend:.4f}, max_budget_per_session: ${max_budget:.2f}." thrown in BerriAI/litellm.
Source
Thrown at litellm/proxy/hooks/max_budget_per_session_limiter.py:115
session_id: Final = self._get_session_id(data)
if max_budget is None or session_id is None:
return None
max_budget = float(max_budget)
cache_key: Final = self._make_cache_key(session_id)
current_spend: Final = await self._get_current_spend(cache_key)
verbose_proxy_logger.debug(
"MaxBudgetPerSessionHandler: session_id=%s, spend=%.4f, max=%.2f",
session_id,
current_spend,
max_budget,
)
if current_spend >= max_budget:
resolved_model, llm_provider = resolve_llm_provider_for_rate_limit(data.get("model") if data else None)
raise ProxyRateLimitError(
detail=(
f"Session budget exceeded for session {session_id}. "
f"Current spend: ${current_spend:.4f}, "
f"max_budget_per_session: ${max_budget:.2f}."
),
rate_limit_type=RateLimitType.BUDGET,
model=resolved_model,
llm_provider=llm_provider,
)
return None
async def async_log_success_event(self, kwargs, response_obj, start_time, end_time):
"""
After a successful LLM call, increment the session spend by the response cost.
"""
try:
litellm_params: Final = kwargs.get("litellm_params") or {}View on GitHub (pinned to 77b7c6c40c)
Solutions
- Start a new session to reset per-session spend.
- Raise max_budget_per_session for the key if the session spend is legitimate.
When it happens
Trigger: Thrown at litellm/proxy/hooks/max_budget_per_session_limiter.py:115 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/d78970229380767d.
Report an issue: GitHub.