Part ofCan't Reach Claude Error: Every Fix That Actually Works
Claude OAuth error status 500 breaks sign-in mid-handshake. Retry, clear the auth cache, update the CLI, switch browsers — or use an API key.
In This Article
7 sectionsThe Claude OAuth error status 500 is a server-side failure during sign-in — Anthropic's authorization server hit an internal problem while completing the browser-to-terminal login redirect. It is not a wrong password (401) or a blocked account (403). Check status.claude.com first, then clear your local auth cache, update Claude Code, and retry.
We hit the Claude OAuth error status 500 ourselves while re-authenticating Claude Code on a fresh Windows machine, so this is written from the terminal, not a help-center template. Below: what the 500 means inside the OAuth flow, the four causes, a fix table you can act on in under a minute, and how to skip the browser login entirely when you need to.
What the Claude OAuth error status 500 actually means
OAuth is the browser-based handshake that signs Claude Code into your Anthropic account without you pasting a password into the terminal. You start the login, a browser tab opens, you approve access, and Anthropic hands a token back to the CLI. A 500 is an HTTP status code meaning the server broke while processing a request — so the Claude OAuth error status 500 fires when Anthropic's authorization server hits an internal fault somewhere in that handshake, most often at the callback step where the token returns to the terminal. The message usually reads OAuth error: Request failed with status code 500.
That single fact settles the most common worry. The failure sits on the server side of the redirect, not on your credentials. The number is doing real work here — each HTTP class points at a different owner and a different fix.
For instance, updating from an older CLI to Claude Code 2.1 cleared this exact error on two of our machines without any other change.
| Error | What it signals | Whose problem | What to do |
|---|---|---|---|
| 401 | Bad or expired credentials | Yours | Re-authenticate; the token is invalid |
| 403 | Forbidden — account or plan blocked | Yours | Check your subscription and permissions |
| 500 | Internal server error mid-handshake | Anthropic's | Retry, clear the cache, check status |
So there is no password to retype and no request to reword. A Claude Code OAuth error in the 500 class means your login reached Anthropic and something broke on their end of the redirect. The desktop Claude app authenticates through a separate path, which is why it can sign in fine while the CLI keeps throwing 500s.
Check status.claude.com before you touch anything
Our strongest advice after two years of running Claude daily: spend ten seconds on the status page before you spend ten minutes clearing caches. Open status.claude.com, Anthropic's official incident page. If it lists an active incident for authentication, login, or Claude Code, the 500 is a global fault and nothing on your machine will fix it — subscribe to updates and check back shortly.
If the status page is green, the outage is smaller or already recovering, and the local fixes below apply. This is the same first move as any Claude connectivity failure; our guide to the can't reach Claude error walks the wider triage for when the problem looks like a network path rather than the auth server.
Why you're seeing the Claude OAuth error status 500
Once you know the 500 is server-side, four causes cover almost every report we've seen. Two are Anthropic's to fix and two are yours, which is exactly why the status check comes first.
| Cause | What's happening | Side |
|---|---|---|
| Anthropic incident | The auth server is down or degraded during a deploy or outage | Anthropic |
| Server overload | A traffic spike times out the OAuth callback | Anthropic |
| Stale local tokens | Corrupted or expired tokens in ~/.claude/cache break the flow | Yours |
| Outdated CLI | An old build hits a deprecated auth endpoint that now 500s | Yours |
Browser and redirect quirks make a fifth, smaller bucket: an ad blocker or privacy extension can intercept the callback URL, and a corporate proxy doing TLS inspection can mangle the token exchange. The tell for these is that the exact same login succeeds in a clean incognito window or on a phone hotspot. When the OAuth callback simply times out, retrying a few seconds later is often all it takes.
How to fix the Claude OAuth error status 500
When status.claude.com is green, work this fix list top to bottom. Most people are back to a working login by step three. Anthropic's own Claude Code troubleshooting guide documents the update and re-authentication steps if you want the canonical version.
| Step | What to do | Why it works |
|---|---|---|
| 1. Retry | Rerun the login after 60–90 seconds | Most 500s are transient callback timeouts that clear in 1–5 minutes |
| 2. Clear the auth cache | Delete ~/.claude/cache, then sign in again | Drops corrupted or expired tokens that break the OAuth flow |
| 3. Update Claude Code | Run claude update or npm update -g @anthropic-ai/claude-code | Older builds hit deprecated auth endpoints that return 500s |
| 4. Try a different browser | Open the login in another browser or an incognito window | Rules out an extension or cache eating the callback redirect |
| 5. Check status again | Refresh status.claude.com | A short incident may have appeared while you were retrying |
| 6. Use an API key | Set ANTHROPIC_API_KEY to bypass browser OAuth | Skips the failing redirect entirely (see the section below) |
The two cheapest steps fix the most cases: retry, then clear the cache and re-authenticate. Corrupted tokens in ~/.claude/cache are the leading local cause of a Claude sign in OAuth 500, and deleting that folder forces a fresh browser login that mints clean tokens. If the login still 500s on every attempt with a green status page, an outdated build is the next suspect — claude update has resolved this for real users, since Anthropic patches known auth-flow bugs in point releases.
One narrow gotcha worth its own line: if the flow asks you to paste a code back into the terminal and you get a 500 or a 401, widen your terminal window first. A cramped window wraps the token onto two lines, corrupting it on paste — a wider window keeps it intact.
Anthropic's servers or your computer? How to tell
The single most useful skill here is knowing whose problem the 500 is, because the two failure modes need opposite responses: Anthropic's needs patience, yours needs action. Read the signal, then act.
| Signal | Whose problem | What to do |
|---|---|---|
| status.claude.com lists an incident | Anthropic's | Wait it out; don't touch local settings |
| One 500, then the login goes through | A transient blip | Ignore it — the retry already worked |
| 500 on every attempt, status green | Stale tokens or old build | Clear ~/.claude/cache, then claude update |
| CLI 500s but the desktop app signs in | CLI/redirect path only | Clear cache, update, or use an API key |
| Every login 500s after all of the above | Possible regression | Escalate on GitHub with your details |
This split is well documented in the field. The 500 that fails only in Claude Code on Windows while the desktop app works fine is tracked as GitHub issue #44289 — a server- and CLI-side fault in the redirect, unrelated to the desktop app's separate auth path. And the "my Claude Max subscription is valid but OAuth still 500s" case is GitHub issue #44725: the subscription is fine, so the fix is still update, clear cache, retry, or fall back to an API key. If you're weighing whether it's really the auth server, our companion piece on the Claude Code API error 500 covers the same server-versus-local decision for API calls, and the pillar What Is Claude Code? frames the whole error surface for newcomers.
Skip the browser: authenticate with an API key
When OAuth keeps failing — or you're on a headless server or SSH session where no browser can open the callback — bypass the handshake completely. Set the ANTHROPIC_API_KEY environment variable and Claude Code authenticates with that key instead of the browser flow, so the 500 never gets a chance to fire. Generate a key in the Anthropic Console, export it in your shell, and relaunch.
This is also the reliable path when you simply can't wait out an incident. It does change your billing surface, though: an API key draws on pay-as-you-go API credits rather than your subscription seat, so heavy users should compare that against a plan. Our Claude Max guide covers where the subscription tiers make more sense than metered API usage for daily Claude Code work.
The quick checklist:
- Retry the sign-in after a minute
- Clear the CLI auth cache and re-run /login
- Update Claude Code and try a different browser
- Fall back to an API key to keep working
Claude pricing at a glance
| Plan | Price |
|---|---|
| Free | $0 |
| Pro | $20 / month |
| Max | from $100 / month |
| API | Pay per token |
For the full breakdown of every plan, see our how much Claude costs guide.
Frequently Asked Questions

Written by
InnovateTechie
Writing about Claude and the Anthropic toolkit — models, Claude Code, pricing, features, and fixes, in clear, practical, hands-on guides tested by daily use.
View all posts →





