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

  1. Start a new session to reset per-session spend.
  2. 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.