◉CLAUDE LABJP
●2.1.301 — Adds the vim % motion, LaTeX math rendering in the VS Code panel, and a retry-watchdog limit for usage-limit waits (10/15)●2.1.299 — Conversations over 200K tokens left idle about 54 minutes get compacted; MCP allow rules now match only the server they name●SONNET 4.5 — Retires on the Claude API on 11/30, 45 days left. Migrate to Sonnet 5.5●WINDOWS — Reports say hooks break silently only on Japanese-locale Windows; check the character encoding first●FAST MODE — Opus 5.5 fast mode is out of research preview and no longer needs the beta header (10/15)●NEW — I Put a Ten-Line Promise File at the To…●2.1.301 — Adds the vim % motion, LaTeX math rendering in the VS Code panel, and a retry-watchdog limit for usage-limit waits (10/15)●2.1.299 — Conversations over 200K tokens left idle about 54 minutes get compacted; MCP allow rules now match only the server they name●SONNET 4.5 — Retires on the Claude API on 11/30, 45 days left. Migrate to Sonnet 5.5●WINDOWS — Reports say hooks break silently only on Japanese-locale Windows; check the character encoding first●FAST MODE — Opus 5.5 fast mode is out of research preview and no longer needs the beta header (10/15)●NEW — I Put a Ten-Line Promise File at the To…
Articles/Claude Code
⟐ Claude Code/2026-04-24Beginner

Claude Keeps Saying 'Response Incomplete' — A Layered Troubleshooting Guide

Diagnose why Claude or Claude Code freezes with a 'Response incomplete' or 'Try stopping' message. Walk through the four layers where generation can stall and recover the session without losing context.

claude8claude-code132troubleshooting92error17response-incompletetry-stopping

You're halfway through reading a long answer when the conversation suddenly freezes. "Response incomplete." "Claude is not responding. Try stopping." The rest of the reply never arrives, and if you don't know what to do next, you end up starting the session over again every time.

The confusing part is that this isn't a single bug. "Incomplete response" is a symptom that can originate in at least four different layers: the network, the generation process itself, the tool-call pipeline, or the browser state. Refreshing the page or logging out and back in without first narrowing down which layer is stuck rarely fixes the underlying cause. This guide walks through how to identify the layer and recover — in order, so you can stop guessing.

Three things to check before doing anything else

When the "Response incomplete" message appears, scan these three signals first. The right recovery path depends entirely on them.

Is the generation cursor still pulsing? If yes, Claude is still trying to produce tokens. This is almost always a network or streaming issue, and you can usually recover the rest of the answer.

Did a tool call (Bash, Edit, Read) fire just before the freeze? This is the classic Claude Code stall — the tool hangs and the chat shows "incomplete" while the tool process is still blocking.

Did the text end mid-sentence, mid-code-block, or mid-list? That's a hard token limit, not a connection issue. Recovery requires a follow-up prompt, not a retry.

With these three answers in hand, the right fix usually becomes obvious.

Case 1: The cursor is still moving — it's a network problem

If the loading indicator is still showing but no new tokens are arriving, the problem is almost always between your browser and Anthropic's servers, not in the model itself.

In my own experience, this is most common on corporate VPNs and proxies. Claude streams replies as Server-Sent Events, and some middleboxes quietly kill SSE connections that idle even for a few seconds — exactly what happens during Extended Thinking.

The fix, in order:

First, click Stop at the top of the screen, but do not refresh the page. Refreshing discards the in-flight response and hides the "Continue" button.

Second, on Web, click "Continue" (or "Try again"). In Claude Code CLI, run claude --continue to resume the previous session. In most cases the missing portion regenerates cleanly.

Third, if the freeze repeats, drop the VPN or proxy and try again. It's worth asking your admin whether long-lived connections to api.anthropic.com are allowed — some firewalls rewrite or terminate them.

Case 2: It froze during a tool call — a Claude Code–specific case

When Claude Code shows "Try stopping the current command", a tool invocation has stalled. Common culprits:

  • A Bash command is waiting for stdin (interactive commands being run in non-interactive mode)
  • A Read against a very large file (multi-MB) saturates the context window
  • A subagent has entered a deep loop

The first move is Ctrl+C to interrupt the current tool call. If that doesn't release it, press Esc twice — Claude Code will attempt a hard tool abort. That clears most of these cases.

If you know Bash is the stuck tool, open another terminal, find the Claude Code child process with ps aux | grep claude, and kill only the tool child — not the parent. Killing the parent tears down the whole session.

If you ran an interactive command (vim, top, less) and that caused the hang, add a guardrail to your CLAUDE.md for this project: "Never use interactive commands. Always prefer non-interactive flags such as --batch or --no-pager." This alone prevents most repeat incidents.

Case 3: It ended mid-sentence — the output cap

If the response cuts off inside a code block, mid-list, or mid-word, you've almost certainly hit the output token limit. Claude's maximum response length varies by product and model, but Claude Code in particular has a hard ceiling per turn.

The tell: the text ends somewhere that clearly isn't a finishing sentence — an unclosed code fence, a truncated list item, a half-written function.

The fix is boring: ask Claude to continue. "Please continue from where you stopped, without omitting anything" works reliably. A subtle but important detail: say "without omitting anything" explicitly, otherwise Claude sometimes restarts with a summary instead of resuming verbatim.

If you hit this repeatedly, the deeper issue is that you're asking for too much per turn. Break the task into smaller pieces. "Rewrite these five files" is more fragile than "Let's rewrite the first file; I'll confirm, then we'll move on." It feels slower, but the success rate goes up dramatically.

Case 4: Extended Thinking froze partway

With Extended Thinking enabled, the model can exhaust its thinking budget before it ever gets to the visible reply — and that shows up as an incomplete response even though no real answer was ever produced.

Try the same question without Extended Thinking first. If it answers, shrink the thinking budget (or the task) before turning it back on. In Claude Code, /think accepts intensity levels (think, think hard, ultrathink); drop one level and retry.

When nothing recovers — the safe way to start over

Sometimes a session is simply unrecoverable. Two habits make that restart much smoother.

Start the new session from scratch, not with claude --resume. The resumed context often carries whatever state caused the original stall.

Keep a short CLAUDE.md in your working directory that summarizes the current task, constraints, and files you've already changed. Even three lines is enough for Claude to pick up where you left off, without re-learning everything from the last conversation.

And write down what actually fixed it. "Response incomplete" recurs, and a one-line note ("VPN off → Continue worked") turns next week's five-minute problem into a ten-second one.

The checklist to run every time

When you see "Response incomplete", walk through these four questions in order:

  • Is the loading indicator still moving? (yes = network / no = generation finished)
  • Was a tool call running? (yes = Ctrl+C, then Esc twice)
  • Did the text end mid-sentence? (yes = ask for a verbatim continuation)
  • Was Extended Thinking on? (yes = retry without it first)

That's it. Most "incomplete" states are recoverable without killing the session. Try the checklist before you start a new chat.

Share

Thank You for Reading

Claude Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • ✦Copy-paste ready implementation code
  • ✦New advanced guides published daily
  • ✦$5/mo or $10 for lifetime access
View Membership →

If you found this article helpful, a small tip ($1.50) would mean a lot to us. Your support helps keep this site ad-free and covers server and hosting costs.

Related Articles

⟐ Claude Code2026-05-24
When Claude Code's Sequential Edits Cascade into Failure — Fixing 'old_string not found' and 'not unique' on the Same File
Run several Edits against the same file in one turn and the second or third one suddenly fails with 'not found' or 'not unique'. The cause is order-dependence inside a single context snapshot, and a Read + scoped patches usually rescue it.
⟐ Claude Code2026-05-02
Stop the 'old_string is not unique' Error in Claude Code's Edit Tool — A Practical Rewrite Strategy
When Claude Code's Edit tool throws 'old_string is not unique in the file', the root cause is usually that the prompt didn't guarantee a uniquely identifiable target. Here's how to design rewrites that actually stick.
⟐ Claude Code2026-05-10
When Claude Code's Read Doesn't Reach the End of a File — Catching the PARTIAL view Notice and Sizing offset/limit
When Read returns only part of a large file, Claude Code says so with a PARTIAL view notice. Here is how to catch it, and how to size offset and limit by byte budget rather than line count, with measurements from my own sandbox.