LiteLLM v1.104.6 changes the image-signing key and fixes cost tracking
Deploy this version
- Docker
- Pip
docker run \
-e LITELLM_MASTER_KEY=sk-<paste-a-long-random-key> \
-e DATABASE_URL=postgresql://<user>:<password>@<host>:5432/<dbname> \
-e STORE_MODEL_IN_DB=True \
-p 4000:4000 \
docker.litellm.ai/berriai/litellm:1.104.6
pip install litellm==1.104.6
This release is published as ghcr.io/berriai/litellm:v1.104.6. See the GitHub release and the full releases page
v1.104.6 is a patch release on top of v1.104.5. It moves image signing to a new cosign key, removes the eMudhra root CA from every certificate bundle, and backports cost tracking, token counting and tool call fixes from main onto stable/1.104.x. There are no new database migrations. The v1.104.6 tag points at 4a8940a
Starting with this release, every Docker image and Helm chart is signed with the cosign key from commit e82a3c6. Verifying with the previous key from commit 0112e53 fails. Update anything that pins the old cosign.pub, such as cosign verify scripts, CI checks and admission policies.
cosign verify \
--key https://raw.githubusercontent.com/BerriAI/litellm/e82a3c646908ba0a6ee0beddc4310d7a6cac4065/cosign.pub \
ghcr.io/berriai/litellm:v1.104.6
Key Highlights
- New image-signing key: Docker images and Helm charts are signed with the cosign key from commit
e82a3c6, and every certificate bundle drops the eMudhra root CA - Cost tracking: failed, timed-out, cancelled and spilled-over requests are priced correctly, and batch cost tracking is fixed
- Tool calls: gpt-5.4+ models bridged to
/responsesreturn tool calls onchoices[0]again
Image signing and certificates
- Every certificate bundle the SDK, proxy and Docker images trust no longer includes the eMudhra root CA - PR #47670, PR #47969
- Docker images and Helm charts are signed with the cosign key from commit
e82a3c6. The previous key from commit0112e53no longer verifies them - PR #48103
New Models / Updated Models
Bug Fixes
- Azure
- Azure AI Foundry no longer returns 400 when the client sends the
dangerous-tool-use-2026-09-03beta - PR #43934
- Azure AI Foundry no longer returns 400 when the client sends the
LLM API Endpoints
Bugs
- Chat completions
- Tool calls from gpt-5.4+ models land on
choices[0]again instead ofchoices[1]. This started inv1.97.0- PR #46099
- Tool calls from gpt-5.4+ models land on
- Messages API
/v1/messagesstreams no longer holdmessage_startfor minutes during adaptive thinking on Bedrock and Vertex. This started inv1.100.0- PR #43600
- Token counting
- Caching
- Automatic prompt caching no longer adds extra cache marks on
/v1/messageswhenextra_bodyoverrides a client mark - PR #43341
- Automatic prompt caching no longer adds extra cache marks on
Spend Tracking, Budgets and Rate Limiting
- The Usage API no longer times out while looking up names for busy hashed keys - PR #43656
- Streamed requests through a model alias bill the deployment's price instead of $0. This started in
v1.92.0- PR #44341 - Large non-streaming chat requests to
openai/responses/*models log and charge spend once instead of twice. This started inv1.102.0- PR #44508 - Failed, timed-out, cancelled and spilled-over requests are priced correctly instead of wrong or not at all - PR #47718
- Batch cost tracking, claude-haiku-5-5 and Bedrock profile pricing, and
safeguardsrequests on/v1/messagesare fixed - PR #47726
Management Endpoints / UI
Bugs
- Usage reports show the owner of CLI session keys even when spend logs are off or purged - PR #43642, PR #47805
These fixes and the version bump are backported in PR #47802 and PR #48076
PR roll-up by ownership area
- Spend / Budgets / Rate Limits: 5
- LLM API Endpoints: 5
- Other: 3
- UI: 2
- Models & Providers: 1
Full Changelog
https://github.com/BerriAI/litellm/compare/v1.104.5...v1.104.6