Important
Signing has moved to keyless cosign. Since v1.111.0-dev.3, releases are signed with Sigstore keyless signing (GitHub OIDC) instead of the cosign.pub key.
cosign verify --key ... does not work for this release. Use the command below. Earlier releases still verify with the key.
Verify this release
cosign verify \
--certificate-identity https://github.com/BerriAI/project-releaser/.github/workflows/release.yml@refs/heads/main \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
ghcr.io/berriai/litellm:v1.111.0-dev.4Same command for docker.io/litellm/litellm and the Helm chart at ghcr.io/berriai/litellm/chart/litellm:1.111.0-dev.4
What's new in 1.111.0-dev.4
138 PRs. 18 added, 69 fixed, 11 changed, 3 improved, 1 removed. 2 need action
Action required
- Logging and observability: Set
general_settings.redact_tokens_in_spend_logs: trueto keep token scanning in spend logs (#51729) - AWS Bedrock: Remove unsupported
service_tiervalues from Bedrock requests (#50516)
Highlights
- Admin UI: Added customer organization, team and member management in Customer Management (#51521, #51661, #51713)
- Vector stores: Added OpenSearch vector store
filterssupport and hybrid keyword plus vector search (#51131) - Keys, teams and auth: Added
budget_limitswindows on internal users (#51763) - Keys, teams and auth: Added email warnings to key owners before opted-in virtual keys expire (#51482)
- SDK: Fixed hang and
RecursionErroron every completion call whenlitellm.model_fallbacksis set (#51817) - Deployment: Fixed proxy boot failure on PostgreSQL 12 without pgcrypto, broken since v1.110.0-rc.1 (#51868)
- Performance: Improved streaming latency by closing streams right after the last event (#51487)
- Responses API: Fixed Responses fallback replaying tool calls that were already delivered (#51683)
- Azure: Fixed 400 on
azure/Responses and chat calls to Foundry project/openai/v1bases (#51767)
All changes
OpenAI (2)
Azure (5)
- Fixed retirement dates for
azure_ai/claude-haiku-4-5andazure_ai/claude-opus-4-5to 2027-03-16 (#51716) - Fixed
reasoning_effort400 and droppedreasoning_contentfor Kimi K3 onazure_ai(#51747) - Fixed server tracebacks reaching clients and alerts when an Azure stream is cut (#51760)
- Fixed 400 on
azure/Responses and chat calls to Foundry project/openai/v1bases (#51767) - Changed
/v1/messagesfor Claude on Azure AI Foundry to run on the Rust gateway (#51721)
AWS Bedrock (5)
- Fixed 500 on Bedrock Converse requests with
s3://image, document or video URLs (#50577) - Fixed aborted Bedrock Invoke
/v1/messagesstreams still reading from Bedrock (#50657) - Fixed Bedrock vector store search 400 on OpenAI-shape
filtersand ignoreddrop_params(#51291) - Fixed Titan embedding calls on Bedrock
/invokepassthrough not being billed or logged (#51701) - Changed Bedrock to return 400 for unsupported
service_tiervalues and to forwardreserved(#50516)
Vertex AI and Gemini (9)
- Added key, team, org and project labels on Vertex AI requests (#50732)
- Fixed wrong default
max_tokensfor versioned Claude ids on Vertex AI (#40376) - Fixed shutdown dates on Gemini TTS and Live preview models to match Google's deprecations page (#51657)
- Fixed PDF embeddings on
gemini-embedding-2reporting 0 tokens and $0 cost (#51673) - Fixed
document_ocr,audio_track_extractionandauto_truncatebeing dropped on Gemini embeddings (#51686) - Fixed streamed Gemini TTS on chat completions returning no audio in
delta.audio(#51750) - Fixed Vertex 400 for tools with a top-level
anyOf,oneOforallOfschema (#51835) - Improved Vertex RAG Engine vector store searches by reusing one Google token (#51239)
- Removed Flex prices from three Vertex AI Gemini 4 rows (#51735)
Other providers (13)
- Added Vercel AI Gateway models for Decisions requests with cost tracking (#50642)
- Added GitHub App authentication with PEM upload for GitHub Copilot (#51427)
- Added fal.ai Pixverse video billing by clip duration and resolution, billed at $0 before (#51679)
- Added
github_copilot/gemini-4-hydrogento the model cost map (#51696) - Added the 4K output price for
runwayml/seedance2_5, billed at the 720p rate before (#51697) - Fixed OpenRouter streams emitting an empty choice after
finish_reason: stop(#50210) - Fixed Cohere embeddings ignoring
COHERE_API_BASE(#50249) - Fixed Hugging Face chat ignoring
HUGGINGFACE_API_BASEand crashing with env endpoints andhuggingface/tgi(#51449) - Fixed
lowandmediumreasoning effort being sent ashighformistral/mistral-large-4(#51693) - Fixed 500 when streaming
opencode_goMessages-protocol models through chat completions (#51715) - Fixed
together_ai/*listing retired Together models that answer 400 (#51827) - Changed OpenRouter failed non-streaming completions to raise instead of returning success (#50880)
- Changed Mistral Magistral to receive native reasoning levels instead of prompt instructions (#51329)
Chat completions (1)
- Fixed 500 on gateway chat completions when Claude returns a thinking block (#51774)
Responses API (2)
Messages API (2)
Batches and files (2)
Vector stores (1)
- Added OpenSearch vector store
filterssupport and hybrid keyword plus vector search (#51131)
Token counting (4)
- Added native upstream token counting for Mistral (#50653)
- Fixed token counts ignoring
thinking, reasoning effort andtool_choice(#51079) - Fixed local token counts ignoring the request's
tool_choiceon the count routes (#51133) - Changed
/v1/messages/count_tokensto answer 400 instead of 500 for messages missingroleorcontent(#51284)
MCP (2)
Guardrails (1)
- Changed Straiker blocked prompts to return 200 with the block message instead of 400 (#51401)
Caching (2)
Routing and fallbacks (4)
- Fixed Complexity Router dropping
temperatureand output-token limits from routed prompts (#51702) - Fixed
/model_group/infomissing key aliases and team model aliases (#51754) - Fixed wildcard aliases over unknown orgs listing every catalog model id (#51805)
- Changed over-
tpmrequests to fail at once with an error naming the request size (#51838)
Cost tracking and pricing (3)
Logging and observability (8)
- Added a proxy-level default
langfuse_span_scopefor key and team Langfuse destinations (#51726) - Fixed Langfuse environment, release and version missing on
langfuse_oteltraces with OTel v2 (#51385) - Fixed system prompt blocks sent to
/v1/messagesmissing from logged messages (#51699) - Fixed tool and auto-router usage being lost after database disconnects (#51706)
- Fixed missing
litellm_dynamic_limiter_share_tokensgauge for uncapped teams served while the model is idle (#51709) - Fixed spend logs dropping caller request metadata on auth failures (#51745)
- Fixed duplicate async success logs for sync streamed
openai/responses/chat calls (#51787) - Changed spend log token redaction to be off by default (#51729)
Keys, teams and auth (18)
- Added email warnings to key owners before opted-in virtual keys expire (#51482)
- Added
budget_limitswindows on internal users (#51763) - Fixed carried end-user spend being lost when a budget reset is retried (#51143)
- Fixed
401 Expired Keyin Claude Code after alite login --pkce --config-claudekey expires, broken since v1.102.0 (#51319) - Fixed customer org provisioning retries failing and duplicate org aliases breaking requests (#51607)
- Fixed customer budget alerts not firing for members and ignoring team budget overrides (#51645)
- Fixed budget updates failing for customer teams and stale member caches after inherited budget changes (#51654)
- Fixed first request for a new customer org dropping its member, so member spend was never tracked (#51660)
- Fixed dashboard sessions ignoring team models, which made Aria show
No available models(#51663) - Fixed
budget_override_expires_atbeing stored on customer rows with nobudget_override(#51667) - Fixed budgets set as
12monthsor1monthresetting every midnight instead of on the calendar schedule (#51672) - Fixed a key pinned to one customer org registering a different org alias before its 403 (#51674)
- Fixed
/customer/newbudgets resetting on a different schedule than other budget endpoints (#51689) - Fixed
ExceededBudgetpersisting after a customer budget reset (#51694) - Fixed 403 for existing customer members on retry or alias update at the free tier team limit (#51698)
- Fixed leftover budget rows when deleting a customer team that only had
budget_override(#51703) - Fixed
/queue/chat/completionsskipping budget checks andrequest_tag_mappings(#51753) - Fixed SCIM PATCH or PUT 404 on a group with no team so user deactivation applies, broken since v1.99.0 (#51829)
Admin UI (7)
- Added customer organization, team and member management in Customer Management (#51521, #51661, #51713)
- Added an admin setting to turn Aria on or off for internal users (#51641)
- Added free tier limit of 5 customer organizations, teams and members without an Enterprise license (#51687)
- Fixed customer budget displays showing
No capfor monthly and yearly budgets (#51658) - Fixed customer org settings tab rendering in a narrow left column (#51700)
- Changed customer usage page to show member spend above top models (#51677)
- Changed Customer Portal to Customer Management in the UI and API error titles (#51891)
Deployment (4)
- Fixed Helm Ingress sending 16 gateway-only paths to backend pods instead of the gateway (#50760)
- Fixed Docker image reporting a stale
litellm-proxypackage version, broken since v1.110.0-dev.2 (#51807) - Fixed proxy boot failure on PostgreSQL 12 without pgcrypto, broken since v1.110.0-rc.1 (#51868)
- Changed the Docker base image to a Wolfi build with patched glibc (#51550)