[BUG] Claude Code on macOS does not recognize active iOS Apple-billed Max subscription, login succeeds but CLI says account has no access
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Claude Code on macOS CLI does not recognize my active Claude Max subscription that is billed through iOS Apple subscription.
I can successfully log in with claude auth login, and claude auth status shows that I am logged in with a valid Claude.ai account and that my subscriptionType is max. However, when I open claude interactively, it immediately says:
Your account does not have access to Claude Code. Please run /login.
I verified that the local state is contradictory:
claude auth status shows:
loggedIn: trueauthMethod: "claude.ai"apiProvider: "firstParty"subscriptionType: "max"- but
~/.claude.jsonshows: hasAvailableSubscription: falseoauthAccount.billingType: "apple_subscription"
This looks like an entitlement recognition mismatch. Authentication succeeds, but Claude Code does not honor the active Max subscription.
Important context:
My subscription is through iOS App Store billing, specifically Claude Pro Max 20x, and I am using Claude Code CLI on macOS.
What Should Happen?
After a successful claude auth login, Claude Code should recognize my active Max subscription and allow me to use the CLI normally.
If claude auth status shows I am logged in and subscriptionType is max, the interactive CLI should not tell me that my account does not have access.
Error Messages/Logs
$ claude --version
Claude Code v2.1.101
$ claude auth status
{
"loggedIn": true,
"authMethod": "claude.ai",
"apiProvider": "firstParty",
"email": "user@email.com",
"orgId": "3c5a99e3-55fa-48de-b073-f4852bd3e820",
"orgName": "user@email.com's Organization",
"subscriptionType": "max"
}
$ python3 - <<'PY'
import json, os
p = os.path.expanduser("~/.claude.json")
with open(p) as f:
data = json.load(f)
print("hasAvailableSubscription =", data.get("hasAvailableSubscription"))
oauth = data.get("oauthAccount", {})
print("billingType =", oauth.get("billingType"))
print("subscriptionCreatedAt =", oauth.get("subscriptionCreatedAt"))
print("organizationName =", oauth.get("organizationName"))
PY
hasAvailableSubscription = False
billingType = apple_subscription
subscriptionCreatedAt = 2026-03-06T02:02:42.966595Z
organizationName = user@email.com's Organization
Interactive CLI behavior:
$ claude
Claude Code v2.1.101
❯ hi
⏺ Your account does not have access to Claude Code. Please run /login.
I also previously saw:
Please run /login · API Error: 401 {"type":"error","error":{"type":"authentication_error","message":"Invalid authentication credentials"}}
even though a subsequent login reported success.
Steps to Reproduce
Use a Claude account with an active iOS App Store billed subscription, specifically Claude Pro Max 20x.
Install and use Claude Code CLI on macOS.
Run:
claude auth login
Complete browser login successfully.
Verify auth state:
claude auth status
Open Claude Code interactively:
claude
Observe that Claude Code says:
Your account does not have access to Claude Code. Please run /login.
Inspect local state in ~/.claude.json and observe:hasAvailableSubscription: falsebillingType: apple_subscription
Claude Model
Opus
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.101
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
I already tried the common troubleshooting steps and they did not resolve the problem:
updated Claude Code to the latest version
logged out and logged back in
verified Keychain entry exists
deleted and recreated Claude Code-credentials
unlocked macOS login keychain
checked claude doctor
checked environment variables
unset:
CLAUDE_CODE_OAUTH_TOKEN
CLAUDE_CODE_OAUTH_REFRESH_TOKEN
CLAUDE_CODE_OAUTH_SCOPES
ANTHROPIC_API_KEY
reviewed ~/.claude/settings.json
reviewed ~/.claude.json
Relevant detail:claude auth status consistently shows a healthy authenticated Max account, but the local entitlement state still says hasAvailableSubscription: false.
This makes it look like a subscription entitlement bug, possibly specific to Apple App Store billed Pro/Max subscriptions being used with Claude Code CLI on macOS.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗