Important
The image-signing key has changed. Starting with this release, every Docker image and Helm chart is signed with the new cosign key from commit e82a3c6. Verifying with the previous key from commit 0112e53 will fail.
Update anything that pins the old cosign.pub: cosign verify scripts, CI checks, and admission policies such as Kyverno, Sigstore policy-controller or Connaisseur.
New cosign.pub SHA-256: e3fe3e08c44b16407fe0b37c43b4f8b603b3a0f4ee74c29e647bc022d762c2c0
Verify this release
cosign verify \
--key https://raw.githubusercontent.com/BerriAI/litellm/e82a3c646908ba0a6ee0beddc4310d7a6cac4065/cosign.pub \
ghcr.io/berriai/litellm:v1.104.6Same command for litellm-database, litellm-non_root and the docker.io/litellm/* images
What's new in 1.104.6
17 PRs. 11 fixed, 2 changed, 1 removed. 1 needs action
Action required
- Deployment: Verify image signatures with the
cosign.pubfrom commite82a3c6, the previous key no longer matches (#48103) Also in 1.103.8
Changes
- Deployment: Removed the eMudhra root CA from every certificate bundle the SDK, proxy and Docker images trust (#47670, #47969) Also in 1.103.8
- Deployment: Changed the cosign key that signs Docker images and Helm charts to the one from commit
e82a3c6(#48103) Also in 1.103.8 - Azure: Fixed Azure AI Foundry returning 400 when the client sends the
dangerous-tool-use-2026-09-03beta (#43934) - Chat completions: Fixed tool calls landing on
choices[1]with gpt-5.4+ models, broken since v1.97.0 (#46099) - Messages API: Fixed
/v1/messagesstreams holdingmessage_startfor minutes during adaptive thinking on Bedrock and Vertex, broken since v1.100.0 (#43600) - Token counting: Fixed DeepSeek and Qwen3.5 token counts running up to 30% low or twice too high on the count endpoints (#47685)
- Token counting: Changed
/v1/messages/count_tokensto return HTTP 400 instead of a known-wrong local estimate (#47705) - Caching: Fixed automatic prompt caching adding extra cache marks on
/v1/messageswhenextra_bodyoverrides a client mark (#43341) - Cost tracking and pricing: Fixed the Usage API timing out while looking up names for busy hashed keys (#43656)
- Cost tracking and pricing: Fixed streamed requests through a model alias billing $0 instead of the deployment's price, broken since v1.92.0 (#44341)
- Cost tracking and pricing: Fixed large non-streaming chat requests to
openai/responses/*models logging and charging spend twice, broken since v1.102.0 (#44508) - Cost tracking and pricing: Fixed failed, timed-out, cancelled and spilled-over requests being priced wrong or not at all (#47718)
- Cost tracking and pricing: Fixed batch cost tracking, claude-haiku-5-5 and Bedrock profile pricing, and
safeguardsrequests on/v1/messages(#47726) Also in 1.105.3 - Admin UI: Fixed Usage reports showing no owner for CLI session keys when spend logs are off or purged (#43642, #47805)
Backport #47802 · Backport #48076 · Full changelog