/model rejects an available model for days due to stale cached emergencyTip; error misattributes it to account entitlement
Summary
The interactive /model command rejects a model based on a stale cached emergencyTip in ~/.claude.json, while the server actually accepts that model. The stale block persisted for 3+ days after the underlying outage ended. The error message misleadingly blames account entitlement ("not currently available for your account"), sending users down the wrong debugging path.
Environment
- Claude Code v2.1.201 (Homebrew cask
claude-code@latest), macOS (darwin 25.5.0) - Claude Max 20x subscription (OAuth, same account everywhere)
- Model: Fable 5 (
claude-fable-5/claude-fable-5[1m]), entitled and under the active promo
What happened
- At some point a genuine availability window presumably occurred, and the client cached an emergency notice in
~/.claude.json:
````
lastShownEmergencyTip = "Claude Fable 5 is currently unavailable. Please use Opus 4.8 or another available model. Learn more: https://www.anthropic.com/news/fable-mythos-access"
- For the next 3 days, interactive
/model claude-fable-5consistently failed with:
````
Model 'claude-fable-5' is not currently available for your account. Claude Fable 5 is currently unavailable. ...
- Meanwhile, on the same binary, same account, same time, all of these succeeded (returned a normal completion from Fable 5):
````
npx -y @anthropic-ai/claude-code@2.1.197 --model 'claude-fable-5[1m]' -p "..." # OK
npx -y @anthropic-ai/claude-code@2.1.201 --model 'claude-fable-5[1m]' -p "..." # OK
npx -y @anthropic-ai/claude-code@2.1.201 --model 'claude-fable-5' -p "..." # OK
/usr/local/bin/claude --model 'claude-fable-5[1m]' -p "..." # OK (the exact binary whose /model refused)
So the server was serving the model fine; only the interactive picker's availability check refused.
- The same account could also use Fable 5 in Claude Code inside the desktop app (bundled 2.1.197) and on claude.ai throughout — which made the failure look like a per-surface entitlement problem.
- After the successful
--modelprint-mode runs, the interactive/modelpicker began accepting Fable 5 again — consistent with the cached flag only being refreshed lazily on certain code paths.
Expected behavior
- The
/modelavailability check should re-validate against the server (or a TTL-bounded cache) rather than honoring a staleemergencyTipindefinitely. - If a model is blocked by an emergency/availability notice rather than entitlement, the error should say so — "temporarily unavailable, cached notice from <date>" — not "not currently available for your account".
Impact
- Users locked out of a model in the interactive picker for days after an outage ends, with no indication the gate is a stale local cache.
- The misleading error message triggers entitlement/plan debugging (support load) when the fix is just a cache refresh.
- During a time-boxed promo (Fable 5 through July 7), days of stale lockout materially eat the promo window.
Workarounds found
claude --model 'claude-fable-5[1m]'at launch bypasses the interactive check entirely.- Successful
--modelruns (and/or time) eventually refresh the cached flag, after which/modelworks again.
🤖 Generated with Claude Code