mirror of
https://github.com/BerriAI/litellm.git
synced 2026-11-05 07:37:50 +00:00
extra_body passed to litellm.completion for an Anthropic model reached the Messages API as a literal nested "extra_body" key, and Anthropic rejected the request with "extra_body: Extra inputs are not permitted". That blocked every Anthropic request field litellm doesn't model yet, including fallbacks AnthropicConfig.transform_request now pops extra_body from the request params and merges its keys into the wire body. The direct Anthropic, Vertex AI and Azure paths all go through this transform. Paths on llm_http_handler, like Bedrock invoke, already pop extra_body before transform_request, so nothing is merged twice. EXTRA_BODY_ROUTING_KEYS is filtered out the same way as on the OpenAI-compatible path, so extra_body can't change the requested model fallbacks also needs the server-side-fallback-2026-07-01 beta, which the beta filter dropped as unknown, so Anthropic still answered "fallbacks: Extra inputs are not permitted". The beta is now forwarded for the anthropic provider only, since Anthropic documents server-side fallback for its own API. The Rust AnthropicBeta table mirrors the JSON config The regression test drives litellm.completion end to end against a mock transport and asserts the whole request body |
||
|---|---|---|
| .. | ||
| .agents/skills | ||
| crates | ||
| docs/adrs | ||
| .gitignore | ||
| AGENTS.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| clippy.toml | ||