[BUG] Max plan: s1mAccessCache.hasAccess=false blocks Sonnet 1M, server re-caches on every launch
Resolved 💬 2 comments Opened May 24, 2026 by ammonfife Closed May 27, 2026
Description
After switching from a setup token to subscription OAuth (to enable plan mode), Sonnet 4.6 (1M) is now gated behind usage credits despite an active Max plan. Opus 4.6 (1M) works fine. The server returns incorrect entitlements on every launch, overwriting any local fixes.
Environment
- CLI version: 2.1.150
- Plan: Claude Max (
claude_max,default_claude_max_20x) - Billing:
stripe_subscription - OS: macOS (Apple Silicon)
- Account:
sakima.lc@gmail.com - Org UUID:
d2d4e3ca-34da-48ab-bf95-9f3327f688d7
Symptoms
/model sonnet→ "Draws from usage credits" →API Error: Usage credits required for 1M context/model opus→ works fine (1M, no credits needed)/model claude-opus-4-7→ "organization restricts model selection"
Root cause (from .claude.json backup inspection)
Three cached values are wrong and re-fetched from the server on every session start (patching locally doesn't stick):
"s1mAccessCache": {
"d2d4e3ca-34da-48ab-bf95-9f3327f688d7": {
"hasAccess": false, // ← WRONG — Max plan should have 1M access
"hasAccessNotAsDefault": false,
"timestamp": 1779126248723
}
}
"hasAvailableSubscription": false // ← WRONG — active Max subscription
"cachedExtraUsageDisabledReason": "org_level_disabled_until" // ← blocks usage credits
Meanwhile the same file correctly shows:
"oauthAccount": {
"organizationType": "claude_max",
"organizationRateLimitTier": "default_claude_max_20x",
"hasExtraUsageEnabled": true,
"billingType": "stripe_subscription"
}
Reproduction
- Have an active Max plan with setup token (Sonnet 1M works)
- Switch to subscription OAuth (
claude logout+claude login) — plan mode starts working - Sonnet 1M now requires usage credits
claude --setup-tokendoes not fix it — OAuth session takes priority- Patching
.claude.jsonbackup files locally works momentarily but the server overwrites on next launch
What I tried
claude logout+claude login(multiple times)claude --setup-tokento re-add API key- Manually patching
s1mAccessCache.hasAccesstotrue+hasAvailableSubscriptiontotrue+ clearingcachedExtraUsageDisabledReasonin backup files — server re-caches the wrong values on next session start
Expected behavior
Max plan should have s1mAccessCache.hasAccess: true and hasAvailableSubscription: true — Sonnet 1M and Opus 4.7 should be available without usage credits.
Related issues
- #35877 — hasAvailableSubscription: false despite active Max subscription
- #19879 — hasAvailableSubscription incorrectly set to false
- #34452 — hasAvailableSubscription: false despite stripe_subscription
- #36351 — 1M context removed from picker after update on Max plan
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗