6 views
-/https://github.com/berriai/litellm/issues/29912
GitHub Ā· issue

#29912 [Bug]: Internal-user max_budget blocks zero-cost models — _PROXY_MaxBudgetLimiter ignores skip_budget_checks

  • State: open
  • Author: @magesh-presidio
  • Labels: bug, proxy, llm translation

### Check for existing issues

- [x] I have searched the existing issues and checked that my issue is not a duplicate.

### What happened?

## Problem When an **internal user** (the LiteLLM user a virtual key belongs to) exceeds their `max_budget`, requests to **zero-cost models** (input + output cost == 0, e.g. self-hosted / on-prem models) are rejected with:

429 "Max budget limit reached." even though zero-cost models are supposed to bypass budget enforcement. Every *other* budget path (key / team / end-user) already exempts zero-cost models via `skip_budget_checks` / `_is_model_cost_zero` in `common_checks()`. The internal-user path does not.

## Root cause The personal-budget pre-call hook `_PROXY_MaxBudgetLimiter.async_pre_call_hook` (`litellm/proxy/hooks/max_budget_limiter.py`) enforces the user budget for **every** request and never consults the model's cost or `skip_budget_checks`. So a zero-cost model is blocked at this hook even though `common_checks()` would have exempted it.

It blocks with the hook's message `"Max budget limit reached."` (429), distinct from the `common_checks` message `"ExceededBudget: User=… over budget"` — confirming the block c…

GitHub resolver

Import GitHub neighbors on demand. Results are saved as system ingests.

Refresh page
vote history (2 events)
#0 of 0 Ā· 31d18h2m14s ago — entered Ā· #import:https:::github.com:berriai:litellm post #2816
The harder item spans shared route classification, deployment-mode behavior, authorization gates, and multiple CRUD paths, requiring broader integration testing. The easier item is a localized budget-hook correction with focused regression coverage.
#0 of 0 Ā· 31d17h59m4s ago — current Ā· #import:https:::github.com:berriai:litellm post #2875
The left issue spans asynchronous reconciliation, billing persistence, callback behavior, idempotency, and regression coverage, while the right is primarily a localized hook-condition correction with focused tests.
discussed in #import:https:::github.com:berriai:litellm

ranked child groups

no voted pairs yet in this scope

cli
src
spread
search