Part ofCan't Reach Claude Error: Every Fix That Actually Works
In This Article
7 sectionsQuick answer
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.
The 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.
Error semantics, the fix sequence and the API-key fallback verified 31 July 2026 against Anthropic's Claude Code troubleshooting guide.
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. We verified this flow hands-on, so where a step is fiddly we have flagged it from experience instead of guesswork.
Key takeaway
The Claude OAuth error status 500 is a server-side fault in the sign-in redirect — not a wrong password (401) or a blocked account (403) — so checking status.claude.com first, then clearing ~/.claude/cache and running claude update, clears most cases within one to five minutes.
What the Claude OAuth error status 500 actually means
A 500 means Anthropic's authorization server broke mid-handshake, usually at the callback step where the token returns to your terminal. Unlike a 401 (bad credentials) or a 403 (blocked account), nothing about your password or your plan is wrong.
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 the current Claude Code build 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. If it is the web sign-in failing rather than the terminal, our triage guide for Claude login not working orders those checks from cheapest to most involved.

Check status.claude.com before you touch anything
Ten seconds on the status page saves ten minutes of cache clearing. An active authentication or Claude Code incident means the failure is global and no local change will help. A green page means the local fixes below are worth running.
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 Claude OAuth error status 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 the sign-in keeps breaking
Four causes cover nearly every report: an Anthropic incident, server overload timing out the callback, stale tokens in the local auth cache, or an outdated CLI calling a deprecated endpoint. Ad blockers and TLS-inspecting proxies make a smaller fifth bucket.
Once you know the Claude OAuth error status 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
Work top to bottom: retry after a minute, delete the local auth cache and sign in again, run claude update, then try another browser. If every attempt still fails, fall back to an API key and bypass the browser redirect entirely.
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
Read the pattern. An incident on the status page means wait. One failure followed by a successful login was a blip. Failures on every attempt against a green status page point at stale tokens or an old build — clear the cache, then update.
The single most useful skill here is knowing whose problem the Claude OAuth error status 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
Setting ANTHROPIC_API_KEY makes Claude Code authenticate with that key instead of the browser handshake, so the failing redirect never runs. It is the standard route on headless servers and SSH sessions, but it bills metered API credits rather than your subscription seat.
When the Claude OAuth error status 500 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
Free costs nothing, Pro is $20 a month, Max starts at $100 a month, and API access is billed per token. The API-key workaround above draws on that metered balance rather than the subscription tier you already pay for.
| 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
Edith
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 →



