# Claude Code Not Working? Every Error and Its Fix

> Every Claude Code error I've written up, grouped by what actually broke: network and enterprise setup, cost and context limits, or setup and tools. Find your exact message in the lookup table, get the one-line answer, then follow the link to the full fix.

By Tahir Nazir · Published 2026-10-08 · Updated 2026-10-08
Canonical: https://www.its-tahir.com/blog/claude-code-troubleshooting

**When Claude Code stops working, the exact error text tells you which of three problems you have: something in the network path (a proxy, gateway or cloud project), a cost or context limit, or a setup and tooling problem.** Find your message in the lookup table below, read the one-line answer, and follow the link for the full fix.

If you don't have an error message at all, run `/doctor` inside Claude Code. Anthropic's troubleshooting docs describe it as an automated check of your installation, settings, extensions and context usage, and it proposes fixes it can apply after you confirm. If `claude` won't start, run `claude doctor` from your shell instead.

Each entry below links to a post that covers that error or symptom in full. Reinstalling fixes very few of them, so read the message before you reinstall anything.

## Find your error: symptom → fix

| What you see | What it usually means | Full fix |
| --- | --- | --- |
| `SSL certificate verification failed (UNABLE_TO_GET_ISSUER_CERT_LOCALLY)` | A TLS-inspecting proxy re-signs your traffic with a root Claude Code can't read | [SSL errors behind a corporate proxy](/blog/claude-code-ssl-certificate-corporate-proxy) |
| `Self-signed certificate detected (SELF_SIGNED_CERT_IN_CHAIN)` | Same cause: the proxy's self-signed root isn't in any store Claude Code uses | [SSL errors behind a corporate proxy](/blog/claude-code-ssl-certificate-corporate-proxy) |
| `CERT_NOT_YET_VALID` or `ERR_TLS_CERT_ALTNAME_INVALID` | A clock or proxy-rule problem, not a missing CA | [SSL errors behind a corporate proxy](/blog/claude-code-ssl-certificate-corporate-proxy) |
| `There's an issue with the selected model (…)` | Usually any HTTP 404: a typo, an extra `/v1`, or a proxy's error page | [It's usually just a 404](/blog/claude-code-issue-with-the-selected-model) |
| `model not found` on Google Cloud's Agent Platform (Vertex AI) | Often the wrong project: `ANTHROPIC_VERTEX_PROJECT_ID` wins | [Claude Code on Vertex AI](/blog/claude-code-vertex-ai-model-not-found) |
| Vertex AI bill suddenly at the Opus rate | No pinned primary model | [Claude Code on Vertex AI](/blog/claude-code-vertex-ai-model-not-found) |
| Hitting your usage limit before lunch | Every turn resends the whole conversation | [Why Claude Code uses so many tokens](/blog/why-claude-code-uses-so-many-tokens) |
| `Compacted while idle, before the prompt cache expired` | A cost-saving feature, switched on server-side | [Compacted while idle](/blog/claude-code-compacted-while-idle) |
| `API Error: Repeated 529 Overloaded errors` | API capacity, not your quota; already retried | [529 overloaded](/blog/claude-code-529-overloaded-retry-behaviour) |
| `You've hit your session limit · resets …` | A usage limit shared across all models | [529 overloaded: session limits](/blog/claude-code-529-overloaded-retry-behaviour) |
| `API Error: Connection lost mid-response` | Completed work was kept; reply `continue` | [529 overloaded](/blog/claude-code-529-overloaded-retry-behaviour) |
| `Autocompact is thrashing: the context refilled to the limit...` | Compaction worked; something refilled the context | [Slow, hanging, or eating memory](/blog/why-claude-code-is-slow-hanging-or-eating-memory) |
| Search misses files on WSL, but `claude doctor` says OK | Cross-filesystem search returns fewer matches | [Slow, hanging, or eating memory](/blog/why-claude-code-is-slow-hanging-or-eating-memory) |
| `Raw mode is not supported` | Git Bash, or piped stdin, not the install | [Windows startup errors](/blog/claude-code-raw-mode-is-not-supported-windows) |
| `'claude' is not recognized` | PATH, or a terminal opened before the install | [Windows startup errors](/blog/claude-code-raw-mode-is-not-supported-windows) |
| `Claude Code does not support 32-bit Windows` | You opened the PowerShell (x86) shortcut | [Windows startup errors](/blog/claude-code-raw-mode-is-not-supported-windows) |
| `cannot execute binary file: Exec format error` | WSL1 | [Windows startup errors](/blog/claude-code-raw-mode-is-not-supported-windows) |
| MCP server missing, `⏸ Pending approval` or `✘ Failed to connect` | The status names one of five problems | [MCP server not showing up](/blog/mcp-server-not-showing-up-in-claude-code) |
| `spawn npx ENOENT` on Windows | Node refuses to spawn `.cmd` files directly | [MCP server not showing up](/blog/mcp-server-not-showing-up-in-claude-code) |
| `The server-side auto mode classifier gave no verdict` | The safety check failed to answer; your command was never judged | [Auto mode gave no verdict](/blog/claude-code-auto-mode-classifier-no-verdict) |
| `We're changing auto mode to no longer charge for classifier requests` … `this session isn't eligible` | A gateway drops the safety fields, so classifier checks stay billed | [Auto mode classifier billing](/blog/claude-code-auto-mode-classifier-billing) |
| Your own MCP server connects, then immediately fails | A stray `console.log()` on a stdio server | [How to build an MCP server](/blog/how-to-build-an-mcp-server) |
| Claude Code ignores a convention, or loads another team's rules | How `CLAUDE.md` files are discovered and loaded | [Claude Code vs Cursor context management](/blog/claude-code-vs-cursor-context-management) |

## Network and enterprise

These errors mean Claude Code can't reach the model the way you think it can. Something sits in the middle (a TLS-inspecting proxy, an LLM gateway, a cloud project), and the error text hides which one. In this cluster, the error code is a better guide than the wording of the message.

### SSL certificate verification failed

```text
API Error: Unable to connect to API: SSL certificate verification failed (UNABLE_TO_GET_ISSUER_CERT_LOCALLY)
```

A TLS-inspecting proxy such as Zscaler or Netskope is re-signing your traffic, so get its root into the OS trust store first (Claude Code reads that store by default) and set `NODE_EXTRA_CA_CERTS` only if your runtime can't read it. → [Claude Code SSL certificate verification failed: fix it by error code](/blog/claude-code-ssl-certificate-corporate-proxy)

The same intercepting proxy breaks other developer tools too. In Next.js it shows up as `next/font` [failing to fetch Google Fonts](/blog/nextjs-failed-to-fetch-google-fonts-corporate-proxy). For npm, pip, git and curl, each reads trust from a different place: [what each tool actually trusts](/blog/corporate-proxy-ssl-npm-pip-git-curl).

### There's an issue with the selected model

```text
There's an issue with the selected model (claude-sonnet-5-5). It may not exist or
you may not have access to it. Run /model to pick a different model.
```

In my tests on Claude Code 2.1.291, every HTTP 404 produced this message, whether the cause was a typo, an `ANTHROPIC_BASE_URL` ending in `/v1` or a proxy's HTML error page, so run `claude --debug` and read the real request path and reply in `~/.claude/debug/`. → [Claude Code "There's an issue with the selected model": it's usually just a 404](/blog/claude-code-issue-with-the-selected-model)

### Model not found on Vertex AI

```text
model not found
```

Check `ANTHROPIC_VERTEX_PROJECT_ID` first: it overrides `GCLOUD_PROJECT`, `GOOGLE_CLOUD_PROJECT` and the project in your credential file, so a 404 is often the wrong project rather than a disabled model. → [Claude Code on Vertex AI: 404s, wrong regions and an Opus-sized bill](/blog/claude-code-vertex-ai-model-not-found)

### Security advisory: SneakPeek in Claude Code Desktop

Not an error message, but the question many teams are asking this week: SneakPeek was a preview-pane flaw in Claude Code Desktop that let a booby-trapped HTML file read local credentials, and it was fixed in Claude Desktop 1.30096.1 on August 17, 2026. If your Desktop app updates itself you already have the fix; on Windows, `Get-AppxPackage -Name Claude` shows the version. → [Claude SneakPeek vulnerability: is your Claude Desktop patched?](/blog/claude-desktop-sneakpeek-vulnerability)

## Cost, context and limits

These problems usually don't stop Claude Code from running. They make it expensive or slow, or they throw away context. The fix is almost always to understand what is being sent, not to send it again.

### Burning through tokens

The symptom is a usage limit that runs out far sooner than the number of messages you sent would suggest.

Every request carries your entire conversation, so a turn's cost is set by how much history sits behind it: run `/usage` to see where the tokens went, `/context` to see what's filling the window, and `/clear` (which is free) when you switch to unrelated work. → [Why Claude Code uses so many tokens (and how to see where they go)](/blog/why-claude-code-uses-so-many-tokens)

### Compacted while idle

```text
Compacted while idle, before the prompt cache expired
```

It's a cost-saving feature that summarises a long session just before its one-hour prompt cache expires, and on Claude Code 2.1.290 or later `"idleCompaction": false` in your settings turns it off. → [Claude Code "Compacted while idle"? How to turn it off](/blog/claude-code-compacted-while-idle)

### 529 Overloaded

```text
API Error: Repeated 529 Overloaded errors. The API is at capacity — this is usually
temporary. Try again in a moment. If it persists, check https://status.claude.com.
```

A 529 doesn't count against your quota and Claude Code has already retried it up to ten times, so switch with `/model` (capacity is tracked per model) rather than retrying the same one. → [Claude Code 529 overloaded: what it retries for you, and what it won't](/blog/claude-code-529-overloaded-retry-behaviour)

The same post covers the look-alikes: `You've hit your session limit` (shared across all models, so `/model` won't help), `Request timed out`, and the `CLAUDE_CODE_RETRY_WATCHDOG=1` setting for unattended runs.

### Slow, hanging, or eating memory

```text
Autocompact is thrashing: the context refilled to the limit...
```

Check the silent failures first: on WSL, searching the Windows filesystem returns fewer matches while `claude doctor` still reports Search as OK, and "Autocompact is thrashing" means compaction worked but something immediately refilled the context. → [Claude Code slow, hanging, or eating memory? Start with the silent failures](/blog/why-claude-code-is-slow-hanging-or-eating-memory)

### Auto mode classifier billing: "this session isn't eligible"

```text
We're changing auto mode to no longer charge for classifier requests in Claude Code.
However, this session isn't eligible because your requests go through …
```

Nothing is broken: the free server-side safety checks aren't reaching your session, usually because an LLM gateway drops the `safeguards` fields, so auto mode's classifier checks stay billed as token usage. Run `/status` to confirm, and note that `CLAUDE_CODE_AUTO_MODE_SERVER=0` only hides the notice. → [Claude Code auto mode billing: why "this session isn't eligible"](/blog/claude-code-auto-mode-classifier-billing)

## Setup, tools and agents

These errors come from the environment around Claude Code: the terminal it runs in, the MCP servers it starts, and the permission mode it works under. Most of them look like install failures and aren't.

### Raw mode is not supported (and other Windows startup errors)

```text
Raw mode is not supported
```

It isn't an install failure: you either launched from Git Bash, which can't provide the TTY the interactive UI needs, or piped input into `claude`, so launch from PowerShell, or use `claude -p "your prompt"` for non-interactive runs. → [Claude Code won't start on Windows? Match the error, not the guide](/blog/claude-code-raw-mode-is-not-supported-windows)

### MCP server not showing up

```bash
claude mcp list
```

Run `claude mcp list` before you edit any config, because the status next to each server (`⏸ Pending approval`, `✘ Failed to connect`, connected with zero tools, or missing entirely) tells you which of five different problems you have. → [MCP server not showing up in Claude Code? Read the status first](/blog/mcp-server-not-showing-up-in-claude-code)

### Auto mode classifier gave no verdict

```text
The server-side auto mode classifier gave no verdict (error), so auto mode cannot
determine the safety of Bash.
```

Nothing judged your command unsafe: the safety check failed to answer and auto mode blocks rather than run anything unchecked, so send another message, restart with `CLAUDE_CODE_AUTO_MODE_SERVER=0` (v2.1.281 or later), or press `Shift+Tab` to leave auto mode. → [Claude Code auto mode "gave no verdict": why even pwd gets blocked](/blog/claude-code-auto-mode-classifier-no-verdict)

### Your own MCP server connects, then fails

The symptom is a server you wrote that shows up, connects, and then breaks on its first message.

On a stdio server, stdout is the JSON-RPC channel, so a single `console.log()` corrupts the message stream; log with `console.error()` instead. → [How to build an MCP server (TypeScript, end to end)](/blog/how-to-build-an-mcp-server)

### Claude Code ignores your conventions

The symptom is an agent that skips a rule you wrote down, or follows rules meant for a different part of the repo.

Claude Code loads every `CLAUDE.md` above your working directory in full at launch, so in a monorepo another team's file two directories up lands in your context too; exclude it with a `claudeMdExcludes` glob list in settings. → [Claude Code vs Cursor: how each one decides what your agent knows](/blog/claude-code-vs-cursor-context-management)

## When nothing here matches

Anthropic's docs split troubleshooting across three pages. The [troubleshooting page](https://code.claude.com/docs/en/troubleshooting) covers performance, stability and search once Claude Code is running. The [error reference](https://code.claude.com/docs/en/errors) lists the runtime errors Claude Code displays and how to recover from each one. [Troubleshoot installation and login](https://code.claude.com/docs/en/troubleshoot-install) handles `command not found`, PATH, permission, network and sign-in errors.

Before you file anything, work through this:

1. **Run `/doctor`**, or `claude doctor` from your shell if Claude Code won't start. Run `/mcp` to check MCP server status.
2. **Run `claude --debug`** and read the newest file in `~/.claude/debug/`. The real request path and server reply are there, even when the on-screen message hides them.
3. **Check [status.claude.com](https://status.claude.com)** for an active incident before you debug your own setup.
4. **Restart with `claude --safe-mode`**. It turns off every customization for one session, which is the quickest way to prove whether a plugin, MCP server or hook is the cause.
5. **Report it** with `/feedback` inside Claude Code, and search the [anthropics/claude-code issues](https://github.com/anthropics/claude-code/issues) for a known bug.

**Key takeaways**

- Match the exact error text first. Claude Code errors fall into three groups (network and enterprise, cost and context limits, setup and tools), and each group needs a different fix.
- Behind a corporate proxy, SSL errors are fixed in the OS trust store first. Use NODE_EXTRA_CA_CERTS only when your runtime can't read that store.
- 'There's an issue with the selected model' is usually a 404 from somewhere. claude --debug shows the real path and reply.
- A 529 is a capacity error, not your quota, so switch with /model. Session and weekly limits are shared across every model.
- No error at all? Run /doctor, or claude doctor if Claude Code won't start. On WSL, search can silently miss files while still reporting OK.

Getting AI coding tools to work cleanly inside locked-down company networks is a lot of the work I do. [See recent projects](/work).

## FAQ

### Why is Claude Code not working?

Start with the exact error text. Most Claude Code failures fall into one of three groups: network and enterprise setup (TLS-inspecting proxies, gateways, Google Cloud's Agent Platform), cost and context limits (token usage, compaction, 529 overloaded errors), or setup and tools (Windows terminals, MCP servers, auto mode). Each group has different fixes. If there is no error message at all, run /doctor inside Claude Code, or claude doctor from your shell if it won't start.

### Is a 529 Overloaded error the same as hitting my usage limit?

No. A 529 means the API is at capacity, and it does not count against your quota. Capacity is tracked per model, so /model can unblock you. A usage limit shows up as 'You've hit your session limit' or 'You've hit your weekly limit'. Those limits are shared across all models, so switching models won't help.

### How do I see the real error behind a vague Claude Code message?

Run claude --debug and open the newest file in ~/.claude/debug/. It records the exact request path and the server's real reply. That is how a generic 'There's an issue with the selected model' turns out to be a base URL with an extra /v1, or a proxy's HTML 404 page.

### Will restarting Claude Code lose my conversation?

No. Press Ctrl+C to cancel the current operation, and close the terminal if it stays unresponsive. Then run claude --resume in the same directory to pick the session back up.

### Where do I report a Claude Code bug?

Use the /feedback command inside Claude Code to report problems directly to Anthropic, and check the anthropics/claude-code GitHub repository for known issues. Anthropic's docs send account, billing and subscription problems to Anthropic support instead.

## Sources

- [Troubleshooting — Claude Code docs](https://code.claude.com/docs/en/troubleshooting)
- [Error reference — Claude Code docs](https://code.claude.com/docs/en/errors)
- [Troubleshoot installation and login — Claude Code docs](https://code.claude.com/docs/en/troubleshoot-install)
