contribution/compass
BerriAI/litellm

LiteLLM

399 signals · 416 observation events

Open repository ↗

The fastest, litest AI Gateway. Rust core with Python SDK. Call 100+ LLM APIs in OpenAI (or native) format with cost tracking, guardrails, load balancing, and logging [Bedrock, Azure, OpenAI, Anthropic, OpenAI, VertexAI, vLLM, Nvidia NIM]

56.3K stars10.5K forksPythonNOASSERTIONai-gatewayanthropicazure-openaibedrockgatewaylangchainlitellmllmkeyword: LiteLLM
PROJECT NEWS

Release, roadmap, and discussion

All news →
BerriAI/litellm

LiteLLM

AI Infrastructure
Latest stable

v1.96.2

v1.96.2
  • Verify Docker Image Signature
  • The cosign claims were validated
  • The signatures were verified against the specified public key
  • What's Changed
  • chore(release): backport proxy request-handling maintenance and refresh runtime deps for 1.96.1 by @yuneng-berri in https://github.com/BerriAI/litellm/pull/36494
Original release notes ↗

Publicly indicated next

Prereleases and milestones indicate public plans; they are not delivery commitments.

Observation trail

  1. discoveredinitial snapshot
  2. discoveredinitial snapshot
  3. changedupdatedAt, metrics
  4. changedtext, updatedAt, metrics
  5. changedupdatedAt, metrics
  6. changedupdatedAt
  7. discoveredinitial snapshot
  8. changedupdatedAt, metrics
  9. changedupdatedAt, metrics
  10. changedupdatedAt
  11. changedupdatedAt, state
  12. changedupdatedAt, state
  13. changedupdatedAt, state
  14. changedupdatedAt, metrics
  15. changedupdatedAt
  16. discoveredinitial snapshot
  17. changedupdatedAt
  18. changedupdatedAt, metrics
  19. changedtext, updatedAt, metrics
  20. changedupdatedAt
  21. changedupdatedAt
  22. changedtext, updatedAt, metrics
  23. discoveredinitial snapshot
  24. discoveredinitial snapshot
  25. changedupdatedAt
  26. discoveredinitial snapshot
  27. discoveredinitial snapshot
  28. discoveredinitial snapshot
  29. changedtext, updatedAt, metrics
  30. discoveredinitial snapshot
50 shown
issue

[Feature]: Support adding skills to private repos with authentication (SSH key for local, GitHub access token for remote/private)

### Check for existing issues - [x] I have searched the existing issues and checked that my issue is not a duplicate. ### The Feature LiteLLM should support adding Claude skills (and similar AI skill plugin integrations) to private repositories. There should be a supported way to authenticate to a private repo, either via SSH key or a GitHub access token, so

importance 36@anengineerdudeopenenhancementproxyOriginal evidence ↗
issue

[Bug]: issue while adding Custom MCP server

### Check for existing issues - [x] I have searched the existing issues and checked that my issue is not a duplicate. ### What happened? While trying to add new Custom MCP Server in UI got the error message: Error creating MCP Server: {"detail":{"error":"Error creating mcp server: Could not find field at `createOneLiteLLM_MCPServerTable.data.approval_status`

importance 30@PavelKaskovopenbugstaleui-dashboardOriginal evidence ↗
release

v1.98.0-dev.2

## Verify Docker Image Signature All LiteLLM Docker images are signed with [cosign](https://docs.sigstore.dev/cosign/overview/). Every release is signed with the same key introduced in [commit `0112e53`](https://github.com/BerriAI/litellm/commit/0112e53046018d726492c814b3644b7d376029d0). **Verify using the pinned commit hash (recommended):** A commit hash is

importance 30@github-actions[bot]Original evidence ↗
pull request

fix(deepseek): DeepSeek V4 support - model registry, multi-turn thinking fix, no-prefix routing

## Relevant issues Fixes https://github.com/BerriAI/litellm/issues/26395 ## Changes **Model registry** (`model_prices_and_context_window.json` + backup): - Add `deepseek-v4-flash` — $0.14/1M input, $0.28/1M output, 1M ctx, 384K output, supports reasoning/tools/caching - Add `deepseek-v4-pro` — $0.435/1M input, $0.87/1M output, same capabilities - Both added

importance 28@ishaan-berriopenOriginal evidence ↗
issue

[Bug]: LiteLLM_Config table is overwriting newly deployed config

### What happened? I noticed that new proxy configs were not getting picked up, specifically general_settings, but I suspect it will apply to most of what inside table LiteLLM_Config. In litellm/proxy/proxy_server.py, the function_update_config_fields is pulling in values from config and overwriting the newly deployed values. That or the initial update, at d

importance 19@ma-armentaclosedbugmlops user requeststaleOriginal evidence ↗
issue

[Bug]: Provider List: https://docs.litellm.ai/docs/providers

### Check for existing issues - [x] I have searched the existing issues and checked that my issue is not a duplicate. ### What happened? Please remove this line it getting flooded in logs ### Steps to Reproduce 1. Use and non openai openrouter model in litellm ### Relevant log output ```shell rovider List: https://docs.litellm.ai/docs/providers Provider List

importance 19@Rishangopenbugllm translationstaleSDKOriginal evidence ↗
issue

[Bug]: LiteLLM Proxy - Responses API streaming omits necessary SSE event types

### Check for existing issues - [x] I have searched the existing issues and checked that my issue is not a duplicate. ### What happened? When streaming Azure Responses API requests through the LiteLLM proxy, it sends `response.output_text.delta` events but **omits the required setup events** (`response.created`, `response.in_progress`, `response.output_item.

importance 14@jackcooney44closedbugproxyllm translationstaleOriginal evidence ↗
pull request

fix(guardrails): scan and re-emit raw Anthropic SSE streams in the bedrock post-call hook

## TLDR Problem this solves: - Anthropic streaming with a Bedrock guardrail returns a 500 - The stream arrives as SSE frames the assembler cannot read - Output scanning never runs, so nothing is guarded either How it solves it: - Assemble the SSE frames into a response, then scan as usual - Convert back to SSE frames only when the guardrail rewrote the text

importance 14@yucheng-berriclosedOriginal evidence ↗
pull request

feat(anthropic): add top-level cache_control for automatic prompt cac…

Anthropic's API now supports automatic prompt caching via a top-level `cache_control` field in the request body. This removes the need to manually annotate individual content blocks — the API automatically places the cache breakpoint at the last cacheable block. Changes: - Add `cache_control` to `AnthropicMessagesRequestOptionalParams` TypedDict - Add `cache

importance 12@Sakshamyadav19closedstaleOriginal evidence ↗
pull request

feat(asqav): optional cloud signing via the agent sign endpoint

## What Adds an opt-in cloud-signing path to the asqav callback (`litellm/integrations/asqav/asqav.py`). When `ASQAV_API_KEY` and `ASQAV_AGENT_ID` are both set, each record's digests are POSTed to the asqav agent sign endpoint (`POST /api/v1/agents/{agent_id}/sign`) and the returned signature id and verification url are bound into the local JSONL line. With

importance 12@jagmarquesclosedOriginal evidence ↗
pull request

feat(github_copilot): route /v1/messages to Copilot native Anthropic endpoint

## Relevant issues This is a copy of #28054 by @ririnto, rebased onto the current `litellm_internal_staging` so it can run through our CI. All credit for the implementation goes to @ririnto; this branch only resolves the merge conflict against the moved base and normalizes formatting to the current ruff - Closes #28053 - Addresses #25666; restores Claude `th

importance 12@mateo-berriclosedOriginal evidence ↗
issue

[Feature]: Support custom and dynamic headers for A2A Agents

### Check for existing issues - [x] I have searched the existing issues and checked that my issue is not a duplicate. ### The Feature **Description:** Currently, when LiteLLM invokes an A2A (Agent-to-Agent) agent, it has limited support for custom headers. While some static headers can be configured via `config.yaml`, there is no flexible way to provide head

importance 11@metalshankedclosedenhancementstaleOriginal evidence ↗
pull request

feat(proxy): proactive model deprecation alerts and `/model/deprecations` endpoint

## TLDR Problem this solves: - Provider sunset dates ship in the registry but stay invisible - Operators find out a model died when calls fail - No lead time to test and migrate replacements How it solves it: - New `GET /model/deprecations` buckets configured models by urgency - Daily Slack alert lists deprecated and imminent models - Per deployment `model_i

importance 11@mateo-berriopenOriginal evidence ↗
pull request

feat(tests): Claude Code Compatibility Matrix v0

_Reopened from #26491 after renaming the branch from `sandcastle/compat-matrix-stack` to `litellm_compat_matrix_stack` so it matches the `/litellm_.*/` CircleCI filter. GitHub's branch-rename API failed to update the original PR's head ref, so the PR was detached on the old SHA. Conversation history lives on #26491._ --- ## Relevant issues Implements the v0

importance 11@mateo-berriclosedOriginal evidence ↗
pull request

fix: refactor HTTP handler initialization with client support

## Relevant issues <!-- e.g. "Fixes #000" --> ## Linear ticket <!-- if you are an internal contributor (e.g., your username is postfixed with -berri or -berriai), add "Resolves " followed by the Linear ticket e.g. "Resolves LIT-1234" to magically link the Linear ticket to the GitHub PR --> ## Pre-Submission checklist **Please complete all items before asking

importance 11@Praveen11558Original evidence ↗
pull request

feat(cost): support time-based off-peak pricing in cost calculation

## TLDR Problem this solves: - Some providers discount per-token rates during a daily window - The cost map only modeled one static rate per model - Logged spend therefore overstates cost inside that window How it solves it: - A model entry can carry an `off_peak_pricing` block - `hours_utc` takes one `"HH:MM-HH:MM"` window or a list - Windows may wrap past

importance 11@Srivatsa03openOriginal evidence ↗
pull request

feat: pre-adoption shadow eval for the auto-router (blind pairwise judge, derived state)

## TLDR Problem this solves: - Admins cannot answer "is it safe to turn the auto-router on?" before routing production traffic through it - Prior attempts (#36250, #36571) accumulated counters, a status column, and lifecycle loops whose cross-pod consistency drew review round after review round How it solves it: - A shadow eval job samples a slice of one key

importance 11@tin-berriopenOriginal evidence ↗
issue

[Bug]: litellm oci gemini model tool call issue

### What happened? During Tool call (Steam and also in nonStream) there is an exception when using Gemini models with OCI provider. ### Relevant log output ```shell ... litellm-1 | 14:45:17 - LiteLLM Router:INFO: router.py:1622 - litellm.acompletion(model=oci/google.gemini-2.5-pro) Exception litellm.APIConnectionError: 4 validation errors for OCICompletionRe

importance 10@xckeclosedbugllm translationstaleSDKOriginal evidence ↗
issue

[Bug]: Error: litellm.BadRequestError: ChatgptException - {"detail":"System messages are not allowed"}

### Check for existing issues - [x] I have searched the existing issues and checked that my issue is not a duplicate. ### What happened? When routing requests through LiteLLM with model `chatgpt/gpt-5.2-codex`, requests that include a system message fail with: `litellm.BadRequestError: ChatgptException - {"detail":"System messages are not allowed"}` I’m tryi

importance 10@AlexSKuznetsovclosedbugllm translationstaleSDKOriginal evidence ↗
pull request

fix(caching): guard against None async_redis_conn_pool in RedisCache.disconnect

Fixes #31206 ## Problem When `REDIS_CLUSTER_NODES` is set, `get_redis_connection_pool()` returns `None` because the cluster-mode path exits early: ```python # litellm/_redis.py if "startup_nodes" in redis_kwargs: return None # cluster mode skips the connection pool ``` This causes `RedisCache.__init__` to store `self.async_redis_conn_pool = None`. At shutdow

importance 10@adhavan18openOriginal evidence ↗
pull request

fix(model_prices): add supports_native_structured_output to claude-haiku-4-5 direct API entries

## Summary Fixes #25308 ### Root cause `claude-haiku-4-5-20251001` and `claude-haiku-4-5` (the direct Anthropic API model IDs) were missing `supports_native_structured_output: true` in `model_prices_and_context_window.json`, even though the model supports it (all the Bedrock and regional cross-region variants already had the flag set correctly). When a calle

importance 10@adhavan18openOriginal evidence ↗
pull request

fix(mcp): handle integer progress tokens

## Relevant issues Fixes #32242 ## Linear ticket N/A ## Pre-Submission checklist - [x] I have added meaningful tests - [x] My PR passes all CI/CD checks (e.g., lint, format, unit tests) - [x] My PR's scope is as isolated as possible; it only solves 1 specific problem - [x] I have requested a Greptile review by commenting `@greptileai` and received a **Confid

importance 10@Atithi2908closedOriginal evidence ↗
pull request

feat(audio): stream OpenAI TTS through the proxy to cut time-to-first-audio

## Relevant issues Fixes #33974 ## Linear ticket ## Pre-Submission checklist **Please complete all items before asking a LiteLLM maintainer to review your PR** - [x] I have added meaningful tests - [x] My PR passes all CI/CD checks (e.g., lint, format, unit tests) - [x] My PR's scope is as isolated as possible; it only solves 1 specific problem - [x] I have

importance 10@TheCodeWrangleropenOriginal evidence ↗
pull request

feat(ui): manage admin-owned logging destinations

## TLDR Problem this solves: - Destinations can only be managed by hand through the credentials API How it solves it: - Adds destinations to Logging & Alerts, with their backend and scope - Lets an admin create one and edit which teams or orgs it reaches - Keeps the existing proxy-wide OTEL callbacks as separate dropdown entries ## Relevant issues ## Linear

importance 10@yucheng-berriopenOriginal evidence ↗
pull request

fix(proxy): auto-configure PROMETHEUS_MULTIPROC_DIR for multi-worker setups

## Summary When running the LiteLLM proxy with multiple uvicorn workers (`--num_workers > 1`) and Prometheus callbacks enabled, Prometheus metrics are silently lost because each worker process maintains its own metrics registry. This PR auto-detects this scenario in `proxy_cli.py` and creates a temporary shared directory for `PROMETHEUS_MULTIPROC_DIR`, enabl

importance 9@jquinteropenstaleOriginal evidence ↗
pull request

fix: allow vllm GET passthrough by checking model in query params

## Description This PR enables correct routing for GET requests to the \/vllm/*\ passthrough endpoints (e.g., \/vllm/metrics\). ## Problem Previously, \ llm_proxy_route\ relied on \is_passthrough_request_using_router_model\ which only checked the request body for a \model\ field. Since LiteLLM's \get_request_body\ ignores bodies for GET requests, these reque

importance 9@VedantMadaneclosedOriginal evidence ↗
pull request

fix(ui): wire bulk invite template download button

## Relevant issues Fixes #27197 ## Linear ticket N/A ## What changed - Wired the existing Bulk Invite Users CSV template generator to the `Download CSV Template` button. - Added a regression test that opens the modal and verifies the CSV template download flow creates a Blob URL, clicks the generated anchor, and revokes the URL. ## Why The component already

importance 9@pony-maggieopenstaleOriginal evidence ↗
pull request

[LIT-2877] Epic A: Cursor SDK agent runtime — /v2/agents, /v2/sessions

## Relevant issues ## Linear ticket Resolves LIT-2877 ## Pre-Submission checklist - [x] I have added testing in `tests/test_litellm/proxy/agent_session_endpoints/` (39 tests, all passing) - [x] PR passes the new module's unit tests (`pytest tests/test_litellm/proxy/agent_session_endpoints/`) - [x] PR scope is one specific thing: ship the agent/session/run wi

importance 9@ishaan-berriclosedstaleOriginal evidence ↗
pull request

fix: honor drop_params in Anthropic pass-through endpoint (#31030)

Fixes #31030 ### Description This PR fixes a bug in the Anthropic pass-through endpoint where the global `drop_params=True` and `additional_drop_params` settings were completely ignored regardless of the downstream provider. This caused unsupported parameters like `thinking` and `context_management` to be blindly forwarded to Vertex AI and Bedrock for models

importance 9@HasnaathussainopenOriginal evidence ↗
pull request

fix: allow safe key type updates for non-admins

## TL;DR Fixes non-admin key updates that returned 403 when the dashboard submitted a safe access preset, while preserving administrator control over management and custom route allowlists. Fixes #34975. ## What changed - add `key_type` to key update requests and generated UI types - normalize dashboard route edits through a dedicated helper - submit exact p

importance 9@patrickswedishopenOriginal evidence ↗
pull request

feat(complexity_router): calibrate the classifier rubric with worked examples, selectable per router

## TLDR Problem this solves: - Classifier rubric is calibrated to consumer chat - Its top tier reads "non-trivial code, multi-step technical work" - That is the median request in developer and agent traffic - So routine engineering routes to the most expensive tier - Prose rules did not move the boundary; only examples did How it solves it: - Adds calibratio

importance 9@tin-berriopenOriginal evidence ↗
issue

[Bug]: Xiaomi MiMo models: 'output_config' parameter causes AsyncCompletions.create() to fail with Claude Code

### Check for existing issues - [x] I have searched the existing issues and checked that my issue is not a duplicate. ### What happened? When using Xiaomi MiMo models (`MiMo-V2-Pro` and `MiMo-V2-Omni`) with the `output_config` parameter, requests fail with: ```javascript Xiaomi_mimoException - AsyncCompletions.create() got an unexpected keyword argument 'out

importance 8@nkrishnakishoropenbugproxyllm translationstalepotential-duplicateOriginal evidence ↗
issue

[Feature]: Support time-based / peak-offpeak pricing for model cost calculation

### Check for existing issues - [x] I have searched the existing issues and checked that my issue is not a duplicate. ### The Feature DeepSeek charge different rates for the same model depending on the time window: off-peak hours: lower input/output token cost peak hours: standard or higher input/output token cost Currently, LiteLLM's model_info pricing fiel

importance 8@winxuanopenenhancementproxyllm translationOriginal evidence ↗
issue

adaptive_router: one persisted alpha/beta=0 cell bricks the whole router with 500 gammavariate: alpha and beta must be > 0.0

### What happened? A model group configured as LiteLLM's native adaptive router returns **HTTP 500 on every request, permanently**, with: ``` gammavariate: alpha and beta must be > 0.0 ``` surfacing from `litellm.router.py::async_function_with_fallbacks()`. Once it starts it never recovers, including across proxy restarts. Deleting one row from `LiteLLM_Adap

importance 8@agentarunpoojari-afkopenOriginal evidence ↗
pull request

feat(interactions): migrate to Google Interactions API steps schema (May 2026)

## Summary Fixes LIT-2969 Google's v1beta Interactions API introduces breaking changes on May 26 (default flip) / June 8 (sunset): - `outputs` array replaced by `steps` array in all responses - `response_mime_type` removed; `response_format` becomes polymorphic; `image_config` moves out of `generation_config` This PR migrates LiteLLM to the new schema while

importance 8@SameerliteclosedOriginal evidence ↗
pull request

fix(helm): wire envFrom secrets and configmaps into migrations job (closes #30311)

## Relevant issues Closes #30311 ## Linear ticket n/a (community contribution) ## Pre-Submission checklist - [x] I have added meaningful tests - [x] My PR's scope is as isolated as possible; it only solves 1 specific problem - [x] Greptile review complete: **5/5 Confidence Score** ([review link](https://github.com/BerriAI/litellm/pull/30325#issuecomment-4696

importance 8@tsushanthopenOriginal evidence ↗
pull request

fix(utils.py): support drop_params for dimensions on Azure and OpenAI compatible embedding calls

## Summary `get_optional_params_embeddings` did not apply `drop_params` to `dimensions` for Azure and OpenAI-compatible providers. Requests for legacy embedding models could retain an unsupported `dimensions` field even when the caller or global configuration asked LiteLLM to drop unsupported parameters. Related context: #26787. That issue is now closed as s

importance 8@HasnaathussainopenOriginal evidence ↗
pull request

feat(bedrock): add aws_session_tags support for STS AssumeRole

## Summary Adds `aws_session_tags` support to Bedrock's STS role assumption flow, enabling per-user/per-team cost attribution in CUR 2.0 billing data. **Problem:** When `aws_session_tags` is passed in `optional_params`, it is not recognized as an AWS authentication parameter. It falls through to `additional_request_params` and gets forwarded in the Bedrock r

importance 8@satya-rubrikopenOriginal evidence ↗
pull request

feat(proxy): extending Ovalix guardrail

## Relevant issues <!-- e.g., "Fixes #000" --> ## Linear ticket <!-- if you are an internal contributor, add "Resolves " followed by the Linear ticket e.g., "Resolves LIT-1234" to link the Linear ticket to the GitHub PR. If you don't have one, leave the section blank rather than guessing --> ## Pre-Submission checklist **Please complete all items before aski

importance 8@shalom-ovalixopenOriginal evidence ↗
pull request

fix(proxy): use top-level metadata for hanging-request alias

## TLDR Problem this solves: - Hanging-request Slack alert always shows empty Key Alias / Team Alias - Metadata is read from the wrong location at proxy pre-call time How it solves it: - Fall back to the top-level request metadata when the resolved metadata is empty - A populated `litellm_params.metadata` is always preferred (guard on emptiness) ## Relevant

importance 8@yryzhan-vitechopenOriginal evidence ↗
pull request

fix(proxy): emit sse keepalive comments during slow time-to-first-token

## TLDR Problem this solves: - Streaming responses emit zero bytes during a long time-to-first-token - Idle-timeout hops then abort a connection that is perfectly healthy - Existing keepalive settings act on sockets, not on the response How it solves it: - Optional interval emits an SSE comment whenever the stream is silent - Races the timer alongside the ex

importance 8@yryzhan-vitechopenOriginal evidence ↗
pull request

feat(proxy): serve Anthropic-native /v1/models for Claude Code gateway discovery

*Re-lands #30273 (reverted during staging)*. No functional changes to the original; rebased onto current main and refactored so the diff is purely additive. ## The problem Claude Code 2.1.126+ added gateway model discovery: when ANTHROPIC_BASE_URL points at a gateway, it queries {base_url}/v1/models at startup and populates the /model picker with the discove

importance 8@Ar-maan05openOriginal evidence ↗
pull request

feat(otel): export the trace to the resolved destinations

## TLDR Problem this solves: - OTEL v2 could only export to one proxy-wide destination set, so different teams could not send traces to their own backends - an admin-owned destination decided which logger owned a backend proxy-wide, so registering one destination scoped to a single team rewrote every other tenant's telemetry pipeline for the life of the proc

importance 8@yucheng-berriopenOriginal evidence ↗
pull request

feat(proxy): disclose resolved destinations on team and organization info

## TLDR Problem this solves: - A team cannot tell which destinations receive its traces How it solves it: - Adds `resolved_logging_exporters` to `/team/info` and `/organization/info` - Names only; endpoints, headers and the access map stay admin information - Lists a destination only when it would actually fire for that identity ## Relevant issues ## Linear

importance 8@yucheng-berriopenOriginal evidence ↗
pull request

feat(ui): add dashboard dark mode (rebase of #18293)

## Relevant issues Closes #10177 Supersedes / unblocks [#18293](https://github.com/BerriAI/litellm/pull/18293) if that branch stays stale — **credit to [@CryptoCanuck](https://github.com/CryptoCanuck)** for the implementation. ## Why this PR [#18293](https://github.com/BerriAI/litellm/pull/18293) already has Greptile 5/5 and the right design (`useDarkMode`,

importance 8@eanrollingsopenOriginal evidence ↗
pull request

feat(logging): add async_post_call_failure_deployment_hook

## TLDR Problem this solves: - CustomLogger has no per-attempt deployment failure signal, only a request-level one gated to fire once - Fallback chain attempts past the first are invisible to callbacks that need a per-deployment count How it solves it: - Adds async_post_call_failure_deployment_hook, completing the existing pre-call/post-success hook pair - F

importance 8@deepanshulullaopenOriginal evidence ↗
issue

[Feature]: add support priority/flex paygo for gemini-2.5-flash and gemini-2.5-flash-lite

### Check for existing issues - [x] I have searched the existing issues and checked that my issue is not a duplicate. ### The Feature Recently, with [#21560](https://github.com/BerriAI/litellm/issues/21560), priority/flex paygo pricing was added for Vertex AI. While this is correctly configured for newer models (like Gemini 3 and 3.1), it is missing for gemi

importance 7@furkancclosedenhancementproxyllm translationstaleOriginal evidence ↗
issue

[Bug]: Azure openai realtime WebRTC flow

### Check for existing issues - [x] I have searched the existing issues and checked that my issue is not a duplicate. ### What happened? What I'm tryin to achieve? Following the guide here to setup the ephemeral token minting for setting up the webrtc connection to azure openai. https://docs.litellm.ai/blog/realtime_webrtc_http_endpoints My litellm version:

importance 7@syedaatifopenbugproxyllm translationOriginal evidence ↗
issue

Azure Model Router: /spend/logs stores router model instead of actual selected model

### Check for existing issues - [x] I have searched the existing issues and checked that my issue is not a duplicate. ### What happened? When using azure_ai/model_router/..., LiteLLM correctly returns the actual selected model in the API response, but /spend/logs stores the router deployment model instead. Example: - actual response model: - azure_ai/gpt-5.4

importance 7@ibeexopenbugllm translationstaleOriginal evidence ↗
issue

[Feature] Support Bedrock GPT 5.5 (Mantle platform) - auto-convert Chat Completions to Response API

## Summary GPT 5.5 on Amazon Bedrock runs on a new platform (Bedrock Mantle) that **only supports the Response API** (`/v1/responses`). It does NOT support the Chat Completions API (`/v1/chat/completions`). Our enterprise customers use LiteLLM as a unified proxy and call all models via `/chat/completions`. Currently GPT 5.5 on Bedrock cannot be used through

importance 7@lancyliclosedllm translationOriginal evidence ↗