Bedrock: thinking.type.enabled not supported by newer models behind inference profile ARNs
Summary
Claude Code 2.1.116 sends thinking.type: "enabled" with budget_tokens in Bedrock API requests, but newer Claude models (accessed via updated AWS Bedrock inference profile ARNs) only accept thinking.type: "adaptive" with output_config.effort. This results in a 400 error, making Claude Code unusable with these models.
Error
API Error: 400 {"type":"error","error":{"type":"invalid_request_error","message":"\"thinking.type.enabled\" is not supported for this model. Use \"thinking.type.adaptive\" and \"output_config.effort\" to control thinking behavior."}}
Environment
- Claude Code version: 2.1.116 (latest as of 2026-04-21)
- Platform: macOS (Darwin, ARM64)
- Provider: AWS Bedrock (
CLAUDE_CODE_USE_BEDROCK=1) - Model: Set via application inference profile ARN in
ANTHROPIC_MODEL
Steps to Reproduce
- Configure Claude Code to use Bedrock with an inference profile ARN pointing to a newer Claude model
- Set
CLAUDE_CODE_USE_BEDROCK=1in~/.claude/settings.json - Launch Claude Code and send any message
- Observe the 400 error
Expected Behavior
Claude Code should detect the model's required thinking format and send thinking.type: "adaptive" with output_config.effort instead of thinking.type: "enabled" with budget_tokens.
Workarounds Attempted
claude --effort high— same error, the underlying request still usesthinking.type: "enabled"claude update— already on latest (2.1.116)- No user-facing config exists to override the thinking type
Notes
The bundled source already contains awareness of thinking.type: "adaptive" (there is a deprecation warning for older models using enabled), but the Bedrock request path does not appear to use it. The fix likely involves updating the model-to-thinking-type mapping for Bedrock inference profiles that resolve to newer models.
This issue has 10 comments on GitHub. Read the full discussion on GitHub ↗