[BUG/UX] opusplan uses Sonnet 4.5 instead of latest Sonnet 5 despite Opus 5 being available

Status Open
Reported on v2.1.222
Maintainer reply None cached
Activity 0 comments · opened Aug 5, 2026

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:

  1. Bedrock has Sonnet 5 available
  2. The plan mode correctly uses Opus 5 (the latest Opus)
  3. The opusplan alias 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

  1. Inconsistent quality expectations: Users choosing opusplan expect "best for planning, good for execution" — not "best for planning, two-generations-old for execution"
  2. Sonnet 5 IS available on Bedrock: The limitation isn't provider availability, it's an arbitrary alias mapping
  3. Unintuitive behavior: Nothing in the opusplan name or description suggests it would use an older Sonnet version on some providers
  4. 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 opusplan as 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 opusplan section specifically
  • Requires users to know Bedrock-specific ARNs
  • Defeats the purpose of an "alias" that should "just work"

Proposed Solutions

  1. Best fix: Make opusplan always use the latest available models, regardless of provider alias defaults
  2. Alternative: Update the sonnet alias on Bedrock to resolve to Sonnet 5 (matching Anthropic API behavior)
  3. Minimum: Document this limitation prominently in the opusplan description and provide clear instructions for Bedrock users

Error Messages/Logs

N/A - no errors, just using an outdated model version

Steps to Reproduce

  1. Set "model": "opusplan" in ~/.claude/settings.json
  2. Use Amazon Bedrock as the provider
  3. Enter plan mode and observe Opus 5 is used
  4. 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 - opusplan falling back to Sonnet in plan mode
  • #16982 - opusplan not 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.

View original on GitHub ↗