HIGH SEVERITYCONFIRMED

create_budget mutable default created_at=time.time() frozen at import

Package
litellm
Version
1.82.6
Verified
2026-03-28

Description

In `litellm/budget_manager.py:81`, the function signature uses `created_at: float = time.time()`. Python evaluates default arguments once at module import. On a server running 24+ hours, `time.time() - frozen_default >= 86400`, which immediately triggers `reset_on_duration()` for any newly created daily budget.

Reproduction

import litellm, inspect, time
spec = inspect.getfullargspec(litellm.BudgetManager.create_budget)
defaults = dict(zip(reversed(spec.args), reversed(spec.defaults)))
frozen_default = defaults['created_at']
# frozen_default is the import timestamp — drifts from time.time() in production
← All bugsScan your code →