9 views
-/https://github.com/berriai/litellm/issues/33401
GitHub · issue

#33401 [Bug]: Bedrock DeepSeek R1 rejects requests with `thinking`/`reasoning_effort` (400 Validation Error) — additionalModelRequestFields leak

  • State: open
  • Author: @jimmychen-p72
  • Labels: llm translation, SDK, claude code

### What happened?

Sending Anthropic-style `thinking` (or `reasoning_effort`) to a **DeepSeek R1** model on **AWS Bedrock** (Converse API) causes AWS to reject the request with a generic 400 `Validation Error`, because litellm forwards `thinking` verbatim into `additionalModelRequestFields` without any model-family gating — DeepSeek R1 on Bedrock doesn't support that field; it reasons via a `<think>` prompt-completion convention, not a Converse-API-level toggle.

Without `thinking`/`reasoning_effort` in the request, calls to the same model succeed (including via `/v1/messages`, which defaults reasoning on for DeepSeek R1 through the model's native `<think>` behavior — no `thinking` field needed).

This is the same class of bug reported in #13959 (gpt-oss/qwen/deepseek-v3.1 on Bedrock), which was auto-closed as stale/not-planned without a fix. Root cause is the same: `AmazonConverseConfig.map_openai_params()` sets `optional_params["thinking"] = value` unconditionally for any non-adaptive-thinking model, and `_handle_reasoning_effort_parameter()` only special-cases `gpt-oss` and Nova 2 — every other model (including `deepseek.r1`) falls through to the Anthropic-shaped `thinking` map…

GitHub resolver

Import GitHub neighbors on demand. Results are saved as system ingests.

Refresh page
vote history (8 events)
#0 of 0 · 31d19h17m0s ago — entered · #import:https:::github.com:berriai:litellm post #1627
The Bedrock integration requires tracing parameter flow, defining model-specific behavior, preserving compatibility across related reasoning paths, and adding regression coverage. The Helm change is comparatively localized to chart templating and annotation propagation.
Adding per-call metadata requires cross-cutting changes across tool-call schemas, request construction, provider translation, and compatibility tests, whereas the other issue is a localized Bedrock parameter-filtering fix with targeted regression coverage.
Adding a provider requires a broad integration surface, including request/response translation, streaming, tool and reasoning event handling, authentication, proxy exposure, compatibility testing, and ongoing maintenance. The other issue is comparatively localized to parameter filtering and model-specific regression tests.
The right issue is harder because it requires provider- and model-specific parameter normalization, preserving compatibility across multiple reasoning pathways, and adding targeted regression coverage. The left issue is comparatively localized to aggregation control flow and cost-calculation tests.
32306 requires secure CI/release-pipeline changes, artifact publication validation, key/signature handling, and end-to-end verification across tooling. 33401 is comparatively localized parameter-gating logic with targeted regression tests.
The dashboard work spans selection state, chart-series rendering, metric switching, and integration with existing UI behavior, while the provider issue is a more localized parameter-mapping fix with targeted regression tests; therefore the dashboard work is harder.
#33401 has greater implementation risk: it crosses provider-specific request translation, model capability detection, backward compatibility, and regression-test coverage. #25866 is more localized to proxy authorization and resource-assignment validation.
#0 of 0 · 31d17h54m19s ago — current · #import:https:::github.com:berriai:litellm post #2946
The right issue is harder because it requires tracing provider-specific parameter translation, defining safe model-family gating, preserving behavior across related reasoning modes, and adding regression coverage. The left issue is primarily process and maintenance-related, with no defined engineering scope.
discussed in #import:https:::github.com:berriai:litellm

ranked child groups

no voted pairs yet in this scope

cli
src
spread
search