LiteLLM is moving to Rust Read the latest updates.
Changelog
The main changes in each LiteLLM release. Open a release for its full notes, upgrade steps and every merged PR. Watch BerriAI/litellm on GitHub to hear about new releases.
LiteLLM v1.106.5, v1.105.6, v1.104.8 and v1.103.10 trim failure logs for rejected requests
- Failure logs for rejected requests keep only core request fields,
tagsand guardrail details. - The GCS logger uses the bucket and credentials configured on the proxy.
LiteLLM v1.106.4, v1.105.5, v1.104.7 and v1.103.9 refresh image base layers
- Docker images move to newer base images, so image scans stop flagging brotli 1.2.0 and packages the images never install.
- v1.106.4, v1.105.5 and v1.104.7 no longer sometimes exit on startup with an
ImportErrorwhen the remote model cost map is unreachable.
LiteLLM v1.106.3, v1.105.4, v1.104.6 and v1.103.8 change the image-signing key
- Docker images and Helm charts are signed with the cosign key from commit
e82a3c6, and the previous key no longer verifies them. - Every certificate bundle the SDK, proxy and images trust drops the eMudhra root CA.
- v1.104.6 also fixes spend on failed and batch requests, token counts and tool calls on gpt-5.4+ models.
LiteLLM v1.106.2, v1.105.3 and v1.103.7 fix spend on failed requests and batch cost
- Requests that time out after reaching the provider, client cancellations and each billed retry attempt are priced on their prompt instead of logging $0.
- Completed batches keep their spend through malformed results and temporary accounting failures, and Bedrock inference profiles are priced.
- Azure
gpt-6-astrawithreasoning_effort: noneandgpt-5.3-codexwithminimalnow return 400 unlessdrop_paramsis on. - v1.105.3 also lists per-user auth MCP tools in the catalog again.
LiteLLM v1.104.5 counts Claude tokens on Bedrock Mantle when Bedrock Runtime cannot
- Token counts for newer Claude models on Bedrock come from the Bedrock Mantle endpoint instead of a local estimate that undercounts.
LiteLLM v1.106.1 fixes count_tokens, MCP tool calls and thinking blocks
- Bare MCP tool names on a single-server scope now go to that server, so a cold replica no longer returns
Tool not found. - Vector stores created through the proxy send only the caller's
metadatato the provider, so later metadata updates no longer fail with 400. - Token count responses carry
litellm_count_source, and Anthropic-format count requests for OpenAI and Gemini models match how/v1/messagesconverts them.
LiteLLM v1.105.2 fixes count_tokens, bridged tool calls and thinking blocks
- Chat completions bridged to
/responsesreturn text and tool calls in onechoices[0], so agents that read onlychoices[0]run the tool. - Signed thinking blocks with empty text stay on
/v1/messagesand chat completion requests, so replayed turns keep their reasoning. - The
v1.104.4token count fixes are included, and count responses carrylitellm_count_source.
LiteLLM v1.103.6 fixes realtime handshake errors and double spend logs
- A refused upstream realtime handshake now sends the client an
errorevent and closes with 1008, 1013 or 1011. - Non-streaming requests of 256 KiB or more on the chat to Responses bridge now log spend once instead of twice.
- This patch has no new database migrations.
LiteLLM v1.104.4 fixes count_tokens, team batch access and guardrail settings
- Anthropic-format count requests for OpenAI and Gemini models are converted the same way
/v1/messagesinference converts them. - Team keys can read and cancel their own team's batches and download the finished results.
- The Add Guardrail wizard in the Admin UI lists its providers again.
LiteLLM v1.106.0 adds Claude Haiku 5.5, a Rust Lens service and MCP rate limits
- Claude Haiku 5.5 works on day one across Anthropic, Bedrock, Bedrock Mantle, Vertex AI, Azure AI and Perplexity.
- Lens runs as a standalone Rust service, and agents upload traces to it directly with dedicated keys.
- MCP Gateway rate limits now cover every MCP operation, and a new server-level
rpmcaps all callers of one server. - The caller's LiteLLM key is never forwarded to MCP servers, so each upstream server needs its own static header or OAuth credential.
LiteLLM v1.103.5 fixes tool calls in chat completions on GPT-5.4 and newer
- Tool calls no longer appear on a separate
choices[1], so agents that read onlychoices[0]run them. - Each tool call in one non-streaming reply now gets its own
indexvalue instead of 0. - The fix applies to
/chat/completionscalls with tools on GPT-5.4 and newer and onresponses/deployments.
LiteLLM v1.105.1 fixes SpendLogs rows and daily model usage writes
- The model leaderboard rollup now writes
LiteLLM_DailyModelUsagein batches, so heavy traffic to one model no longer drops SpendLogs rows. - Non-streaming requests of 256 KiB or more on the chat to Responses bridge now log spend once instead of twice.
- This patch has no new database migrations and no breaking changes.
LiteLLM v1.104.3 adds hosted vLLM and Microsoft-Decision-1 to Decisions
- Decisions requests that send
safety_identifierto a provider other than OpenAI now return 400, so setdrop_paramstotrueto keep the old behavior. - The
litellm.systemone()SDK function takes the System One format, andlitellm.decisions()takes the OpenAI format. - The
azure_ai/prefix serves Microsoft-Decision-1, andhosted_vllm/is a new Decisions provider that requiresapi_base.
LiteLLM v1.105.0 adds Claude Sonnet 5.5, the Decisions API and litellm.agent()
- Claude Sonnet 5.5 works on day one across Anthropic, Bedrock, Bedrock Mantle, Vertex AI, Azure AI, OpenRouter and Perplexity.
/v1/decisionsand/v1/systemonelet decision models answer yes/no, choice and score questions across OpenAI, Perplexity, TypeSafe, OpenRouter and Cloudflare.litellm.agent()runs Claude Code, Codex, OpenCode and Deep Agents through the AI gateway from the SDK.- Bedrock GPT-5.6, GPT-6 and GPT-6.1 use native Chat Completions, which changes response ids and reasoning fields, so use
bedrock/converse/<model>to stay on Converse.
LiteLLM v1.104.2 adds Decisions API routes for OpenAI and System One
- The proxy now serves
POST /v1/decisionsin OpenAI's Decisions API format andPOST /v1/systemonein the System One format. - Decision models from OpenAI, Perplexity, TypeSafe, OpenRouter, Cloudflare Clef and self-hosted Strands Decider answer on both routes.
- Malformed requests, such as a missing
stateor more than 128 questions, return HTTP 400 before any upstream call.
LiteLLM v1.102.4 fixes double-counted spend on the chat to Responses bridge
- Since v1.102.0, large non-streaming chat requests to
openai/responses/*models logged spend twice, and each request now logs once. - Key, team and daily spend now match the real cost of each request, and streaming requests are unchanged.
LiteLLM v1.101.6 fixes Codex CLI tool calls on the Responses to Chat bridge
- Codex CLI tools now reach models behind the Responses to Chat Completions bridge, such as Bedrock Converse models.
- The bridge moves
additional_toolsinput items intotoolsfor every bridged provider. - The model call returns to Codex as a
custom_tool_callin both streaming and non-streaming responses.
LiteLLM v1.104.1, v1.103.4 and v1.102.3 update pgbouncer to 1.26.0
- Wolfi's
openssl-devpackage now installs OpenSSL 4.0, so the Docker images bundle pgbouncer 1.26.0 to build again. - The locked Python dependencies update
langgraph-sdkto 0.4.4,makoto 1.4.2 andwerkzeugto 3.1.9. - The Admin UI updates
nextto 16.3.6 andmomentto 2.31.0.
LiteLLM v1.100.5 and v1.101.5 update next to 16.3.6 and urllib3 to 2.8.0
- The locked Python dependencies update
urllib3to 2.8.0,pypdfto 6.19.0 andpyjwtto 2.15.0. - The Admin UI updates
nextto 16.3.6, and the wolfi-base image digest picks up glibc 2.44-r6.
LiteLLM v1.103.3 fixes streamed alias spend and bridged tool calls
- The proxy exits at startup when database setup fails, unless you set
ENFORCE_PRISMA_MIGRATION_CHECK=falseto keep the old behavior. - Streamed requests through an alias such as
claude-opus-4.6now record spend from the deployment model instead of $0. - Chat replies bridged from the Responses API now put tool calls in
choices[0], so clients that read only the first choice run the tool.
Older releases are listed in the sidebar.