Setup-token sessions (sk-ant-oat01-, CLAUDE_CODE_OAUTH_TOKEN) on Max 20x report hasAvailableSubscription: false and disable Fable 5; interactive /login on the same account enables it
Description
On a Claude Max (20x) subscription, Claude Code sessions authenticated via a long-lived setup token (claude setup-token → sk-ant-oat01-..., consumed through the CLAUDE_CODE_OAUTH_TOKEN environment variable) report hasAvailableSubscription: false in the session's client data. As a result, the model picker renders the Fable 5 entry (claude-fable-5[1m]) as "Fable (disabled)", and /model fable fails with "Claude Fable 5 is currently unavailable".
An interactive /login session on the same account (env token unset) does not set that flag false, and Fable 5 is available as expected.
Steps to Reproduce
- On a Max 20x account, run
claude setup-tokenand export the resulting token asCLAUDE_CODE_OAUTH_TOKEN. - Launch
claudeand run/model→ Fable 5 shows as "(disabled)"; selecting it reports "currently unavailable". - In a clean profile (
env -u CLAUDE_CODE_OAUTH_TOKEN CLAUDE_CONFIG_DIR=$HOME/.claude-test claude), authenticate with interactive/loginusing the same account. - Run
/model→ Fable 5 is enabled and works.
Evidence (A/B, same account, same machine, same client version)
| | setup-token session | interactive /login session |
|---|---|---|
| oauthAccount | identical (Max 20x, admin) | identical (Max 20x, admin) |
| hasAvailableSubscription | false | not set false |
| Fable 5 catalog entry | "Fable (disabled)" | "Fable" (enabled) |
| Other models (Opus, Sonnet, Haiku) | work normally | work normally |
Nothing but the auth mode differs between the two sessions. Account is organizationType: claude_max, organizationRateLimitTier: default_claude_max_20x. Not a geography, plan, or client-version issue.
Expected Behavior
A setup-token minted by a Max subscriber should carry the same subscription entitlement as an interactive login session on that account — or at minimum, subscription-gated models should not be silently disabled for setup-token sessions while every other model works.
Impact
Setup tokens are the documented path for long-lived/automation auth. Users who rely on them (e.g. to avoid interactive re-auth on always-on machines) lose access to Fable 5 with no indication that the auth mode is the cause.
Environment
- macOS (Darwin 21.6.0)
- Claude Code 2.1.198
- Claude Max 20x subscription
- Auth method: OAuth setup token (
sk-ant-oat01-) viaCLAUDE_CODE_OAUTH_TOKEN