[BUG] Claude Code seems to use Sonnet even when configured explicitly to use Opus
Environment
- Platform (select one):
- [x] Anthropic API
- [ ] AWS Bedrock
- [ ] Google Vertex AI
- [ ] Other: <!-- specify -->
- Claude CLI version: v1.0.92
- Operating System: macOS 15.3.2
- Terminal: Terminal App
Bug Description
I'm on the 20x subscription and have my model set explicitly to Opus 4.1, not the automatic selection default or the "plan in Opus, work in Sonnet" option. After working in it for a while, I check ccusage and notice that Sonnet has appeared in my usage summary even though I've never configured Claude Code to use Sonnet. In the past I used to see warnings about reaching an Opus limit but I haven't seen those in a while, and I assume some update made it helpfully fall back to Sonnet when my Opus limit runs out. I'd much rather that be an explicit decision from me rather than an implicit one that happens without warning.
Steps to Reproduce
- Use
/modelto configure Claude Code to use only Opus - Work in Claude Code for a while until Opus limit runs out
- Monitor
ccusageand notice Sonnet appear in usage even though the configuration doesn't mention it
Expected Behavior
Some sort of hard failure, or an explicit prompt saying "please configure /model to Sonnet or the automatic switcharoo mode if you would like to proceed"
Actual Behavior
CC transparently downgrades to Sonnet usage despite explicit configuration
Additional Context
After seeing ccusage I actually asked Claude Code what model it was and it told me Sonnet 3.5. I then asked why it was Sonnet 3.5 when /model was configured to be Opus. It then told me it was Opus and had made a mistake. I told it that ccusage made me doubt its response and it "admitted" that it was Sonnet 3.5 after all and that it wasn't sure why the model configuration wasn't working.
This issue has 11 comments on GitHub. Read the full discussion on GitHub ↗