[BUG] Desktop app persistent 403 after CLI works fine (macOS)

Resolved 💬 8 comments Opened Feb 9, 2026 by AliceLJY Closed Apr 6, 2026

Environment

  • OS: macOS (Darwin 25.3.0, Apple Silicon)
  • Claude Code CLI: Working perfectly with Claude Max subscription
  • Claude Desktop App: Persistent 403 error
  • Auth method: OAuth (Claude Max)

Problem

The Claude Code desktop app consistently returns 403 {"error":{"type":"forbidden","message":"Request not allowed"}} while the CLI works perfectly fine on the same machine with the same account.

Steps to Reproduce

  1. Use Claude Code CLI in terminal - works fine, shows "Claude Max" after /login
  2. Open Claude Code desktop app - fails with 403

What I've Tried (all failed)

  1. Re-login via CLI - CLI works, desktop still 403
  2. Re-login via desktop - completes OAuth flow, still 403
  3. Quit desktop, login in CLI, reopen desktop - still 403
  4. Clear all Electron cache (deleted Local Storage/, Session Storage/, Cookies from ~/Library/Application Support/Claude/) - desktop forced fresh OAuth login, completed successfully, still 403
  5. Multiple reinstalls - no effect

Observation

  • After clearing Electron cache: sidebar chat history came back (server-synced), so the fresh login did succeed - but API calls still return 403
  • CLI shows "Claude Max" authentication; desktop seems to authenticate but cannot make API requests
  • This started after I began using the CLI version; previously desktop worked fine

Likely Related Issues

  • #6952 - Unable to log in with organization account
  • #12383 - Desktop always shows Claude API instead of subscription
  • #8007 - OAuth error 403
  • #19020 - CLI works but desktop 403 (closed as duplicate)
  • #18816 - Authentication loop with grey screen and 403

These issues keep getting closed as duplicates or by inactivity bots, but the underlying problem remains unresolved.

Expected Behavior

Desktop app should work with the same OAuth credentials that the CLI uses successfully.

View original on GitHub ↗

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