[BUG] /model picker offers no route to entitled Fable 5 when the catalogue's only Fable row is a restricted Fable 5.1 (2.1.259, Claude Enterprise)
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet (nearest is #91852, the mirror case - see below)
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
On a Claude Enterprise seat (organization role user) where the organization grants Fable 5 but restricts Fable 5.1, the model picker offers no Fable option at all - the entitled model is unreachable through the UI.
State in ~/.claude.json:
modelAccessCache:claude-fable-5→entitled: true;claude-fable-5-1→entitled: falseadditionalModelOptionsCacheholds a single Fable row:{"value": "claude-fable-5-1[1m]", "label": "Fable", "description": "Fable 5.1 · Most capable for your hardest and longest-running tasks"}
The picker (VS Code extension panel) shows no selectable Fable entry. The typed alias path behaves differently and proves the client knows the fallback:
/model fable→Model "fable" is restricted by your organization's settings. Using claude-fable-5 instead.- and the session works on Fable 5./model claude-fable-5→ succeeds directly.
So the picker reflects only the single catalogue row and never applies the substitution the alias path applies. This looks like the mirror image of #91852 (same version, opposite direction: there the catalogue's only row is claude-fable-5[1m] and the entitled 5.1 is missing from the picker). In both cases the picker tracks the catalogue row, not the entitlements.
Not a stale cache: a full logout/login (fresh keychain credential; profileFetchedAt, additionalModelOptionsAnsweredAt, and cachedUsageUtilization all re-fetched within one second of the new credential's creation) reproduces the identical state. Nothing local restricts models (no managed-settings.json, no model key in settings, orgModelDefaultCache: null).
What Should Happen?
The picker should offer the Fable version the account is entitled to - either the catalogue should include a claude-fable-5 row when 5.1 is restricted, or the picker should apply the same entitlement fallback the /model <alias> path already applies.
Error Messages/Logs
Model "fable" is restricted by your organization's settings. Using claude-fable-5 instead.
Set model to `Fable 5` for this session only · Draws from usage credits
Steps to Reproduce
- Use a Claude Enterprise seat whose organization grants
claude-fable-5and restrictsclaude-fable-5-1(visible inmodelAccessCachein~/.claude.json). - Open the model picker in the VS Code extension (or CLI
/modellist): no Fable entry is offered. - Type
/model fable: the client substitutes Fable 5 and says so. - Type
/model claude-fable-5: works directly.
Claude Code Version
2.1.259 (Claude Code), VS Code extension native binary, darwin-arm64
Platform
Anthropic API (Claude Enterprise subscription, keychain OAuth login)
Operating System
macOS
Terminal/Shell
VS Code extension panel
Additional Information
Secondary observation, possibly the #81350 family with a different trigger: the /model confirmation appends "Draws from usage credits", but measured usage meters to plan pools. Between two cachedUsageUtilization fetches ~15 minutes apart spanning only Fable 5 activity: session 28→34 %, weekly (all models) 54→55 %, weekly Fable-scoped 4→5 %, while extra_usage.used_credits stayed at 0. additionalModelCostsCache is {} even immediately after a fresh login, which may be what drives the label fallback. Reported as a datapoint on #81350; mentioned here because it suggests the Fable catalogue metadata for this account is incomplete overall.