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

Open 💬 0 comments Opened Jul 2, 2026 by data-t3labs

Description

On a Claude Max (20x) subscription, Claude Code sessions authenticated via a long-lived setup token (claude setup-tokensk-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

  1. On a Max 20x account, run claude setup-token and export the resulting token as CLAUDE_CODE_OAUTH_TOKEN.
  2. Launch claude and run /model → Fable 5 shows as "(disabled)"; selecting it reports "currently unavailable".
  3. In a clean profile (env -u CLAUDE_CODE_OAUTH_TOKEN CLAUDE_CONFIG_DIR=$HOME/.claude-test claude), authenticate with interactive /login using the same account.
  4. 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-) via CLAUDE_CODE_OAUTH_TOKEN

View original on GitHub ↗