Claude silently falls back to Sonnet after Opus cap — breaks workflows and causes real damage. Please allow opt-out.

Status Fixed / completed
Maintainer reply ✓ Yes — dicksontsai
Activity 12 comments · opened Jul 13, 2025 · closed Aug 22, 2025
💡 Likely answer: A maintainer (dicksontsai, collaborator) responded on this thread — see the highlighted reply below.

Hi team,

I'm using the x20 plan and I’ve encountered a serious issue that caused real damage to my project workflow.

Claude switches from Opus to Sonnet even when Opus is explicitly selected
After setting the model to Opus using the /model command, I expect Claude to stay on Opus.
But when the Opus limit is reached, Claude automatically switches to Sonnet without asking.
I get the message:
Claude Opus 4 limit reached, now using Sonnet 4
This switch happens silently, even if Opus was manually chosen. That’s not okay.

Sonnet misunderstood the task and broke my project
After switching to Sonnet, Claude completely lost the context.
Instead of continuing the planned task, it jumped into something else, ignored previous instructions, and started working on the wrong part of the project.
It made changes to files that should not have been touched at all.

As a result:

It didn’t follow the requested ULTRATHINK planning mode

It switched focus from one project to another

It made incorrect edits

It caused 15+ TypeScript errors

It broke the codebase

Sonnet is not a suitable fallback
Sonnet is slower, less accurate, and clearly cannot handle complex planning or context.
It ignores commands, acts without confirmation, and even changes project focus by itself.

Please give users control
I would prefer Claude to stop responding when Opus is unavailable, rather than switching to a weaker model that causes mistakes.

Please add an option to disable automatic fallback to Sonnet.
This fallback is not helpful — it's risky.

Also, the x20 cap now lasts only 1.5–2 hours instead of 3–4 like before.
So I’m paying for Opus, getting Sonnet, and losing productivity.

Thanks for your attention — I really love Claude, but these recent changes are breaking professional workflows.

---

<img width="796" height="269" alt="Image" src="https://github.com/user-attachments/assets/52886848-2e50-4874-b6ba-aabcf1285b52" />

<img width="600" height="276" alt="Image" src="https://github.com/user-attachments/assets/6aad99ce-06fb-4ff7-9d79-dd03014a59c3" />

---

Feedback ID: 092baf98-3134-4734-81d3-f296024c219a

View original on GitHub ↗

12 Comments

djgilcrease · 1 year ago

Sonnet 4 can and does work pretty well, BUT the central issue is when it switches from Opus it loses all context, and I have found it best to exit and restart claude so I can rebuild the context from scratch. If I miss the message, ya, I need to revert a lot of crap changes that Sonnent made to random stuff.

max-sixty · 1 year ago

setting /model to Opus has exactly the behavior you say you want — no switching down to Sonnet. the switch down to Sonnet is the default.

sirmalloc · 1 year ago
setting /model to Opus has exactly the behavior you say you want — no switching down to Sonnet. the switch down to Sonnet is the default.

The OP did set the model to Opus directly in the provided screenshot and it still switched. I had the same thing happen today, not one hour after switching from Max 5x to 20x plan.

<img width="1038" height="426" alt="Image" src="https://github.com/user-attachments/assets/d7879910-e45f-454c-913e-dbee286f657c" />

Oddly enough, if I ask it what model it is running after that message appears, it'll tell me it's running Opus, yet ccusage shows Sonnet tokens being used. It almost seems like it's actually running Opus, but claude code thinks it's running Sonnet (even down to the token logging in the .jsonl files). No clue what's going on at this point.

<img width="1009" height="188" alt="Image" src="https://github.com/user-attachments/assets/f2c04ef1-8153-4870-8135-9558bd798448" />

Alphayellowcat · 1 year ago
> setting /model to Opus has exactly the behavior you say you want — no switching down to Sonnet. the switch down to Sonnet is the default. The OP did set the model to Opus directly in the provided screenshot and it still switched. I had the same thing happen today, not one hour after switching from Max 5x to 20x plan. <img alt="Image" width="1038" height="426" src="https://private-user-images.githubusercontent.com/2913994/465861538-d7879910-e45f-454c-913e-dbee286f657c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NTI0ODgwMzksIm5iZiI6MTc1MjQ4NzczOSwicGF0aCI6Ii8yOTEzOTk0LzQ2NTg2MTUzOC1kNzg3OTkxMC1lNDVmLTQ1NGMtOTEzZS1kYmVlMjg2ZjY1N2MucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDcxNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTA3MTRUMTAwODU5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NjgxZTAyMWI4N2M4NmYyZThkYWE5NzRlZDZjYmM1NDJmMGIzNzRmZGEwOGYyYTc0NGE4YTNiNGQ3ZTk0ZTkyMSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.8Fl8p4Jtbk5PP11daM5M7n7VZZPJ92g_mFe7f03T3BQ"> Oddly enough, if I ask it what model it is running after that message appears, it'll tell me it's running Opus, yet ccusage shows Sonnet tokens being used. It almost seems like it's actually running Opus, but claude code thinks it's running Sonnet (even down to the token logging in the .jsonl files). No clue what's going on at this point. <img alt="Image" width="1009" height="188" src="https://private-user-images.githubusercontent.com/2913994/465864699-f2c04ef1-8153-4870-8135-9558bd798448.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NTI0ODgwMzksIm5iZiI6MTc1MjQ4NzczOSwicGF0aCI6Ii8yOTEzOTk0LzQ2NTg2NDY5OS1mMmMwNGVmMS04MTUzLTQ4NzAtODEzNS05NTU4YmQ3OTg0NDgucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDcxNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTA3MTRUMTAwODU5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NzdkYTUxZWZhODIzNGQzYTAxYzQ3NGVmMTBmMDllNjk0MTk2ZDkzYjJmMzk4MjQ1MTYxMDQ4YWI2MDZkMjJlOCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.CY9NghW_W1uRgX5d1tztc8ERFBZsKxrwB2xpXd7DUQA">

This phenomenon also happens when I use the moonshot API. I have to wonder if the system prompts emphasize itself an Opus model.

mearcstapa-gqz · 1 year ago

Getting the same problem. Encountering "Claude Opus 4 limit reached, now using Sonnet 4" when model is set to opus instead of default.

YoloMark98 · 1 year ago

I am having the same problem, also because of the limit issue, they will have updated the tokens available per session(I am a MAX x20 user) before I was using it for 4-5 hours in a row, now instead for the same task level in about 2h I finish all the tokens granted in the subscription. They should clarify this, otherwise they will lose a lot of users, it is becoming unusable, besides the drop in performance of Opus4.

YoloMark98 · 1 year ago

I found another issue right now.

I was in the 2 pm - 7 pm session, and now that it's 6:58 pm it tells me that the session is started started at 5pm and will end at 10pm. So we notice how there is a drastic problem that is happening now on Claude code...I hope they fix it soon!

Eisermann · 1 year ago

I have same issue, also on Max Plan. After one simple task Opus on default is reaching limit (default says that it uses opus to 20% of limit, not 50% as it was earlier). I switched to opus and after few minutes it says that it is reaching limit and using sonnet. Honestly - no reason to pay for Max to use sonnet anyway. Pro is enough for this. If nothing changes, I will downgrade by sub to Pro (5x cheaper)

Sharpnel89 · 1 year ago

I have the same issue right now but I've been using the max 5x plan for only 2 days here and i already reached my limit a few times and now i got this message that its switching to sonnet. The question i have right now is when will it switch back to Opus? how long do i have to wait?

dicksontsai collaborator · 1 year ago
copumpkin · 1 year ago

@dicksontsai was it? Maybe it regressed, because I just observed it in v1.0.92 as outlined in https://github.com/anthropics/claude-code/issues/6602

github-actions[bot] · 12 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.