Fable 5.1 unreachable in Claude Code despite unused plan-included Fable allocation; credit-block dialog shows "not included in plan" copy with no affirmative action
Claude Code: 2.1.258 (linux, native install)
Account: Claude Team, premium seat
oauthAccount.organizationRole = user
What happens
/model -> select Fable 5.1 gives a confirm dialog:
Switch to Fable 5.1?
Fable 5.1 runs on usage credits, purchased separately from your plan.
> No, keep my current model
Request more from your admin
There is no affirmative option, so Fable 5.1 cannot be selected at all.
/usage-credits reports: "Your organization is out of usage credits. Contact your admin to add more."
Why this looks wrong
/usage at the same moment:
Current week (all models): 10% used
Current week (Fable): 4% used
Per the help centre, premium seats on Team plans include Fable 5 and 5.1 as a
standard part of the plan, usable up to 50% of weekly limits at no extra cost.
96% of that Fable allocation is unused, yet Claude Code routes Fable to usage
credits and then hard-blocks on the empty org credit pool. The same account
selects and uses Fable 5.1 normally in the claude.ai web client, so the seat
itself is not gated.
Net effect: an unused, plan-included allocation is unreachable in Claude Code,
and the block is attributed to a credit pool that should not be involved.
Secondary: dialog copy is wrong for this state
Reading the dialog's own branch conditions, the state isoveragesEnabled=true, balance=null, blocked=true, limitReached=false.
That combination selects the "runs on usage credits, purchased separately from
your plan" string -- the not-included-in-plan wording -- when the actual
situation is "included in plan, but the org credit pool is empty". It also
leaves the confirm label falling through to "Request more from your admin"
with no "Continue with Fable 5.1", so the branch is a dead end by construction.
The admin-request confirm screen additionally says "Only send this if you're
running into usage limits", which is not true here, so the single offered
action would send admins a misleading request.
Possible cause
In the bundled CLI, setFableCreditsRequired is inferred from rate-limit
response headers rather than a plan-entitlement field, and one path defaults
to credits-required when the server data is ambiguous:
me = k?.rateLimitType === "seven_day_overage_included";
if (!me && k?.rateLimitType === undefined && V !== "fetch_error"
&& V !== "unknown")
setFableCreditsRequired(true);
If a premium Team seat's Fable inclusion is not expressed as rateLimitType"seven_day_overage_included", this concludes credits are required while the
included allocation is nearly untouched.
Expected
With included Fable allocation remaining, selecting Fable 5.1 should proceed
without a usage-credits gate. If credits genuinely are required for this seat,
the dialog should say why (org credit pool empty / spend limit reached) rather
than "purchased separately from your plan", and should not depend on an
inference from rate-limit headers.
Showing cached comments. Read the full discussion on GitHub ↗
3 Comments
The issue appears to have resolved itself without communication to that effect, perhaps with the release of v2.1.261
Still reproducible on 2.1.261 (macOS, native install), so it did not resolve with that release for every org.
Setup: Claude Team, my seat is Premium (org has both seat types). Auth via
CLAUDE_CODE_OAUTH_TOKEN. Org had usage credits disabled, no credit balance.Symptom: identical to the report.
/model fableshows "Switch to Fable 5.1? … runs on usage credits, purchased separately from your plan. You don't have usage credits yet." with only No, keep my current model / Request usage credits from your admin. Starting with--model claude-fable-5-1on the command line instead of the picker fails the first turn with "There's an issue with the selected model (claude-fable-5-1.). It may not exist or you may not have access to it."/usageshowed ~1% of the 7-day allocation used.What did NOT help: quitting every Claude Code process and clearing
overageCreditGrantCache,cachedExtraUsageDisabledReason,cachedGrowthBookFeatures*,cachedExperiment*from~/.claude.json. The client re-fetched flags on the next launch and gated again, so this is not a stale local cache.Server-side entitlement is fine: the same token, same machine, running
claude -p "…" --model claude-fable-5-1 --output-format jsonreturns a response withmodelUsage["claude-fable-5-1"]. Only the interactive picker path blocks.Workaround that unblocks it: as org owner, Organization settings → Usage → Turn on usage credits and put a small balance on the org ($5). The dialog disappears and Fable 5.1 runs.
/usageand the 7-day meter then climb while the org's credit spend stays at $0.00, i.e. usage bills to the plan-included premium-seat allocation as it should. The credits were never charged, they only changed the client's gate. That matches therateLimitType !== "seven_day_overage_included" → setFableCreditsRequired(true)inference described above: for a premium seat in an org with credits off, the server answer apparently isn't the one value the client accepts.Suggest reopening: premium seats with credits disabled at the org level still hit this on 2.1.261.
For those who come after - just /logout from current session and /login again, that fixed the false credits info for me.