[BUG] Claude Code on macOS does not recognize active iOS Apple-billed Max subscription, login succeeds but CLI says account has no access

Resolved 💬 3 comments Opened Apr 12, 2026 by hamdunoori Closed May 29, 2026

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: true
  • authMethod: "claude.ai"
  • apiProvider: "firstParty"
  • subscriptionType: "max"
  • but ~/.claude.json shows:
  • hasAvailableSubscription: false
  • oauthAccount.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: false
billingType: 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.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗