hasAvailableSubscription incorrectly set to false despite active Pro/Max subscription
Description
Claude Code incorrectly sets hasAvailableSubscription: false in ~/.claude.json despite having an active Pro/Max subscription. This causes rate limit errors and "Upgrade to Pro" prompts even when the user has plenty of usage remaining.
Environment
- Claude Code Version: 2.1.14
- OS: macOS (Darwin 25.2.0)
- Subscription: Active (verified on claude.ai/settings showing 4% session / 28% weekly usage)
Symptoms
- Claude Code operations fail with "Rate limit reached"
- Modal shows "Upgrade to Pro for Higher Limits" despite already having Pro/Max subscription
~/.claude.jsoncontains:
``json``
"hasAvailableSubscription": false,
"hasExtraUsageEnabled": false
- Meanwhile, claude.ai/settings correctly shows:
- Active subscription with usage meters
- Plenty of remaining quota (4% session, 28% weekly used)
- "Extra usage" toggle available (indicating paid plan)
Steps to Reproduce
- Have an active Claude Pro/Max subscription
- Run
claude logout && claude loginto re-authenticate - Check
~/.claude.json-hasAvailableSubscriptionis set tofalse - Attempt to use Claude Code - hits false rate limit
- Check claude.ai/settings - subscription is active with plenty of usage remaining
Expected Behavior
After successful OAuth authentication with a paid subscription:
hasAvailableSubscriptionshould betrue- Claude Code should recognize the subscription tier
- No false rate limit errors when usage is well below limits
Actual Behavior
hasAvailableSubscriptionisfalse- Claude Code thinks user is on free tier
- Shows "Upgrade to Pro" despite being on Pro/Max
- Operations fail with rate limit errors
Workaround
Manually fix the config:
python3 -c "import json; f=open('$HOME/.claude.json','r+'); d=json.load(f); d['hasAvailableSubscription']=True; f.seek(0); json.dump(d,f,indent=2); f.truncate(); print('Fixed')"
Related Issues
This appears related to #17966 where re-authentication causes hasExtraUsageEnabled to be stuck at false. The root cause seems to be that OAuth tokens generated during re-authentication are not properly linked to the paid subscription in the backend.
Screenshots
The rate limit modal shows "Upgrade to Pro for Higher Limits" while claude.ai/settings shows 72% weekly usage remaining and 96% session usage remaining.
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗