[BUG/UX] opusplan uses Sonnet 4.5 instead of latest Sonnet 5 despite Opus 5 being available
Preflight Checklist
- [x] I have searched existing issues and this specific concern hasn't been reported
- [x] This is a single bug report
- [x] I am using the latest version of Claude Code
What's Wrong?
When using "model": "opusplan" on Amazon Bedrock, the execution mode uses Sonnet 4.5 instead of Sonnet 5, even though:
- Bedrock has Sonnet 5 available
- The plan mode correctly uses Opus 5 (the latest Opus)
- The
opusplanalias suggests it would use the "latest and best" models for both phases
Expected Behavior
opusplan should use the latest available models on the provider:
- Plan mode: Opus 5 ✓ (working correctly)
- Execution mode: Sonnet 5 ❌ (currently uses Sonnet 4.5)
The entire point of opusplan is to get optimal quality in plan mode while being cost-effective in execution. Using a model that's two generations behind (4.5 vs 5) undermines this value proposition.
Actual Behavior
On Amazon Bedrock with opusplan:
- Plan mode: Opus 5 (correct)
- Execution mode: Sonnet 4.5 (outdated)
Root Cause (Per Documentation)
According to the model configuration docs, the sonnet alias resolves differently by provider:
| Provider | sonnet alias resolves to |
|----------|---------------------------|
| Anthropic API | Sonnet 5 |
| Claude Platform on AWS | Sonnet 4.6 |
| Amazon Bedrock | Sonnet 4.5 |
Since opusplan uses the sonnet alias for execution mode, it inherits this provider-specific resolution.
Why This is a Problem
- Inconsistent quality expectations: Users choosing
opusplanexpect "best for planning, good for execution" — not "best for planning, two-generations-old for execution" - Sonnet 5 IS available on Bedrock: The limitation isn't provider availability, it's an arbitrary alias mapping
- Unintuitive behavior: Nothing in the
opusplanname or description suggests it would use an older Sonnet version on some providers - Asymmetric treatment: Plan mode gets Opus 5 (latest), but execution mode gets Sonnet 4.5 (not latest)
Impact
- Bedrock users are unknowingly getting degraded execution quality
- No warning or indication that they're using an outdated model
- Defeats the purpose of
opusplanas a "smart default"
Workaround
The docs mention that you can override this by setting:
ANTHROPIC_DEFAULT_SONNET_MODEL=<sonnet-5-bedrock-arn>
But this:
- Disables other versions of sonnet unless you manually type in the ARN using
/model ARN - Isn't documented in the
opusplansection specifically - Requires users to know Bedrock-specific ARNs
- Defeats the purpose of an "alias" that should "just work"
Proposed Solutions
- Best fix: Make
opusplanalways use the latest available models, regardless of provider alias defaults - Alternative: Update the
sonnetalias on Bedrock to resolve to Sonnet 5 (matching Anthropic API behavior) - Minimum: Document this limitation prominently in the
opusplandescription and provide clear instructions for Bedrock users
Error Messages/Logs
N/A - no errors, just using an outdated model version
Steps to Reproduce
- Set
"model": "opusplan"in~/.claude/settings.json - Use Amazon Bedrock as the provider
- Enter plan mode and observe Opus 5 is used
- Exit plan mode (execution mode) and observe Sonnet 4.5 is used instead of Sonnet 5
Claude Model
Other
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.222 (Claude Code)
Platform
Amazon Bedrock
Operating System
Windows
Terminal/Shell
PowerShell
Additional Information
Related issues about opusplan model switching problems:
- #74325 -
opusplanfalling back to Sonnet in plan mode - #16982 -
opusplannot switching to Opus during plan mode
However, this issue is distinct: both models are switching correctly, but the execution mode is using an outdated model version per the documented alias resolution.