Silent model fallback: Fable 5 -> Opus 4.8 mid-session with no notification when a usage limit is hit
Problem
When a usage limit is reached (in my case the 5-hour limit hit 93% while the weekly limits still had headroom), Claude Code Desktop silently falls back from the model I selected (Fable 5) to another model (Opus 4.8) mid-session. There is no message, no toast, no chat notice telling me the switch happened or why.
The only way I discovered it was by chance: the model name in the composer footer changed from "Fable 5" to "Opus 4.8". I had explicitly run /model claude-fable-5 (it reported "Set model to claude-fable-5"), yet the next turns ran on Opus. Re-running /model claude-fable-5 sets it back, but on the next limit pressure it silently swaps again - so it oscillates Fable <-> Opus repeatedly during a working session.
Why this is bad (trust)
This is a paid product. Silently substituting the model a paying user chose, without a word, reads as the product quietly downgrading what they paid for and hoping they won't notice. It is exactly the kind of dark pattern a founder would never want to inflict on their own subscribers. It is not just a display nuisance - it is a trust problem.
Steps to reproduce
- Select Fable 5 via
/model claude-fable-5(footer shows Fable 5). - Do heavy work until the 5-hour usage limit approaches its cap (weekly limits can still have room).
- Continue - the session silently falls back to Opus 4.8; the footer quietly changes; no notification is shown.
- Run
/model claude-fable-5again - it returns to Fable, then swaps away again under the next limit pressure.
Expected
- Announce the switch explicitly the moment it happens: an inline chat/system notice like "Fable 5's 5-hour limit is reached; switched to Opus 4.8 until it resets at HH:MM." Never swap the paid-for model silently.
- Say which limit triggered it (5-hour vs weekly vs weekly-per-model) and when it resets, so the user can decide to pause instead of continuing on a different model.
- Offer a setting to opt out of automatic fallback - "pause instead of switching models" - for users who would rather wait than run on a model they didn't choose.
- Keep the footer indicator, the
/modelresult, and the actual runtime model in agreement at all times.
Environment
- Claude Code Desktop (Windows 11), Max 20x subscription
- Observed: 5-hour limit at 93% (red, ~47 min to reset), Weekly all-models 45%, Weekly Fable 88%; footer flipped Fable 5 <-> Opus 4.8 across turns
Impact
Silent model downgrades on a paid plan erode trust in the exact moments users are working hardest. A single honest sentence ("limit hit, switched, resets at X") would turn a frustrating dark-pattern experience into a transparent one.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗