Claude Code stuck or frozen? The complete rescue guide
Verbatim fixes for every hang: Compacting conversation…, Almost done thinking…, Not responding — try stopping, Resuming container…, startup freezes and terminal stalls — each sourced from the official docs, the changelog or a maintainer-answered GitHub issue.
TL;DR — the 60-second triage
- Press Esc once, then Ctrl+C if the spinner ignores it. Most soft hangs release, and the session is already saved to disk.
- Stuck on “Compacting conversation…”? Cancel it, then run /compact with a focus like “keep only the plan and the diff” so the next pass has less to summarize.
- See the orange “Not responding — try stopping” bar? The command may still be running — check the underlying output before you kill anything.
- After a force-quit, run claude --resume in the same directory — the transcript lives on disk, not in the dead process.
Every fix on this page is traceable to the official troubleshooting docs, the release changelog, or a maintainer-answered issue on anthropics/claude-code. Community workarounds without an official response are labeled as such.
Each section below is keyed to the exact string Claude Code shows while it hangs. Match the wording on your screen, then work the numbered steps top to bottom — every fix is sourced from the official troubleshooting docs, the release changelog, or a maintainer-answered issue on anthropics/claude-code.
Stuck on “Compacting conversation…”
Auto-compact fires when the context window fills up: Claude Code summarizes the conversation so far and swaps it in. On a genuinely huge session that summary pass can take minutes — and the v2.1.282 and v2.1.284 releases fixed real failure modes where compaction stalled on a refused summary request or left a “Prompt is too long” error behind. If a normal-sized session grinds for more than two or three minutes, it is stuck, not working.
- 1Give it a couple of minutes first if the session is legitimately enormous — v2.1.283 reworked the compaction spinner so its timer starts when compaction actually begins.
- 2Past that, press Esc, then Ctrl+C, to cancel the compact. The official docs confirm Ctrl+C cancels the current operation without discarding your session.
- 3Compact by hand with a focus so the summary drops bulky tool output, for example: /compact keep only the plan and the diff.
- 4If the old history is disposable, run /clear instead and start fresh — and update to v2.1.284 or newer so the fixed compaction retries are in place.
Copy-paste rescue commands
/compact keep only the plan and the diff/clearStuck on “Almost done thinking…”
Counterintuitively, that spinner label is not a progress report: maintainers confirmed in issue #63387 that the rotating phrases do not correspond to the model's real reasoning state. So “almost done” can sit on screen for many minutes, and issue #55328 documents turns where Esc and Ctrl+C do nothing while extended thinking runs long.
- 1Press Esc once and give it a few seconds; press Ctrl+C if the spinner keeps going.
- 2If the input stays dead, close the terminal tab, open a new one, and run claude --resume in the same directory to pick the session back up.
- 3If every long turn hangs the same way, update Claude Code, then suspect a stalled MCP server or hook — they look identical to a thinking stall, and /mcp shows which server is misbehaving.
Copy-paste rescue commands
claude --resume“Not responding — try stopping”
This orange banner is Claude Code's watchdog: a tool call — usually a long bash command — has been quiet long enough that the UI offers a stop button. It is advisory, not a verdict: Anthropic's own demos show the process can still be working normally underneath, and Claude Code lead Boris Cherny has publicly asked affected users for recordings, so the team is aware and investigating.
- 1Check whether the underlying command is still producing output — a build that is quietly compiling does not need interrupting.
- 2If it truly is wedged, press Esc or the orange stop button to interrupt the turn.
- 3Tell Claude you stopped it manually — after a manual stop the model can wrongly assume the tool was rejected and apologize instead of continuing.
- 4Re-run the long operation in the background or in smaller chunks so the foreground watchdog does not fire again.
Copy-paste rescue commands
claude --resumeKnown rough edge: an Anthropic demo of this exact banner shows the stop button appearing while the command was still healthy — verify before you stop.
Stuck on “Resuming container…” (cloud sessions)
Claude Code's web and mobile sessions run in a cloud container. Reopening an older session boots that container back up and streams the transcript in, which is genuinely slow for large histories — and v2.1.286 fixed a bug where sessions with very large histories never woke up at all because the container had stopped while the transcript was still loading.
- 1Wait a few minutes first — a cold container resume is slower than a fresh session, and there is no progress bar to tell you it is moving.
- 2Update the CLI to v2.1.286 or later — claude update, or npm install -g @anthropic-ai/claude-code — that release fixes the never-wakes bug for very large cloud histories.
- 3Still frozen after updating? Reload the web session; if it persists, start a new session and continue the work there.
Copy-paste rescue commands
claude updatenpm install -g @anthropic-ai/claude-codeCommunity workaround, official response pending: several users report the container waking within about five minutes — only treat it as dead after that.
Freezing on startup
A freeze before the prompt appears is almost always local: a crashing MCP server, plugin or hook, a corrupted state, or an extension problem. The v2.1.284 release fixed VS Code tabs that stopped responding after Restart Extensions, and v2.1.286 fixed an endless “Teleporting session…” spinner when the extension stops responding. Because the in-app /doctor needs a live session, you start from your shell.
- 1Run claude doctor from your terminal — the docs recommend exactly this for the will-not-start case; it checks the installation and proposes fixes.
- 2Launch with claude --safe-mode, which disables all plugins, MCP servers and hooks for the session — if startup succeeds, one of those customizations is the culprit.
- 3Re-enable your customizations one by one — or run /mcp once you are inside — to find the offender, then update or remove it.
- 4On VS Code, update the extension as well — the two 2.1.28x fixes above only exist in current versions.
Copy-paste rescue commands
claude doctorclaude --safe-modeFrozen in the terminal
The classic full-window freeze — input dead, spinner stuck, Ctrl+C ignored — has a documented playbook. The official troubleshooting guide's own sequence is: try to cancel, restart the terminal if needed, resume; nothing is lost either way. Garbled or half-drawn output in an editor's integrated terminal is a separate, GPU-acceleration problem with its own one-command fix.
- 1Press Ctrl+C to attempt to cancel the current operation.
- 2If the window stays unresponsive, close the terminal entirely and open a new one.
- 3In the fresh terminal, run claude --resume in the same project directory — the docs promise the conversation is not lost.
- 4Output garbled in the VS Code integrated terminal? Run /terminal-setup — it turns off GPU acceleration for the terminal and clears up the corruption.
Copy-paste rescue commands
claude --resume/terminal-setupPlatform differences: VS Code, Windows, WSL and macOS
The same hang wears different clothes per platform — these environment-specific notes are worth checking before you blame the model.
VS Code extension
Two recent fixes matter here: v2.1.284 repaired tabs that stopped responding after Restart Extensions, and v2.1.286 killed the endless “Teleporting session…” spinner that appeared when the extension stopped responding. If your panel freezes, update the extension before anything else — and keep /terminal-setup in your pocket for garbled output in the integrated terminal.
Windows
Windows-specific startup and update bugs have their own patch train: v2.1.281 fixed a race where simultaneous updates could delete each other's claude.exe backup, and v2.1.286 fixed claude --bg refusing a trusted folder over drive-letter case. Keep the CLI current, and let one update finish before launching another.
WSL
The docs call out WSL for slow or incomplete searches — cross-filesystem penalties when the project sits under /mnt/c. Their fix: move the project into the Linux filesystem (a path under /home) or run Claude Code natively on Windows. The most-reported hang regression, issue #26224, was filed from WSL2 with Windows Terminal — so a plain wsl --update is worth a minute too.
macOS
Terminal.app freezes are rare; the macOS-specific paper cuts are clipboard commands like pbcopy failing inside the sandbox and copied text not landing over SSH. Neither hangs the session itself — but if your freeze coincides with a copy, the docs' /copy section is the place to look.
Stuck locally vs. Claude actually down
A frozen spinner almost always means your process is stuck, not that Anthropic is having an incident — hangs are local, reproducible, and usually answer to Esc. Before you rebuild your config, check status.claude.com: if there is an active incident, no local fix will help, and waiting is the correct move.
Want the service-status playbook instead — outage symptoms, incident history, what degrades first? That is a different topic, covered by its own guide on this site.
One wording trap: searches for claude code hanging also surface suspended account results. Account suspension is a billing enforcement action — check your inbox for an Anthropic notice — and has nothing to do with a frozen terminal.
