Synthetic assistant turn 'No response requested.' silently fires on auto-injected 'Continue from where you left off.' prompts

Resolved 💬 2 comments Opened Jun 7, 2026 by jasongainor Closed Jun 7, 2026

Summary

The VS Code / code-server entrypoint occasionally auto-injects a meta-user message "Continue from where you left off." (with isMeta: true) which is paired with a synthetic assistant turn that the CLI fabricates without calling the model — content is the literal string "No response requested.". Operator sees the conversation as if the assistant declined the prompt; their next manual message gets a normal response. So the session itself is fine, but each occurrence costs a round-trip and is confusing in the UI.

Versions seen

  • Reproduced on 2.1.116, 2.1.123. Upgrading to 2.1.168 in progress; will update if behavior changes.
  • All occurrences from entrypoint: "claude-vscode" (code-server in browser). Have not seen it from the terminal CLI entrypoint.

Evidence (from session transcript at ~/.claude/projects/.../<sessionId>.jsonl)

Counts across one 38 MB session transcript covering 2026-05-17 → 2026-06-05:

auto-injected "Continue from where you left off." (isMeta=true) : 7
synthetic "No response requested."                              : 7
LLM-generated "No response requested." responses                : 0
user-typed "Continue from where you left off."                  : 2

100% correlation between meta-Continue auto-injection and the synthetic empty response. Zero instances of the LLM actually producing this string.

Sample synthetic assistant turn JSON:

{
  "type": "assistant",
  "message": {
    "id": "dc48aec4-5478-43a4-b956-ba4296775992",
    "model": "<synthetic>",
    "stop_reason": "stop_sequence",
    "stop_sequence": "",
    "usage": {"input_tokens": 0, "output_tokens": 0, ...},
    "content": [{"type": "text", "text": "No response requested."}]
  },
  "parentUuid": "<meta-Continue message uuid>",
  "entrypoint": "claude-vscode",
  "version": "2.1.123"
}

The corresponding user message:

{
  "type": "user",
  "message": {"role": "user", "content": [{"type": "text", "text": "Continue from where you left off."}]},
  "isMeta": true,
  "promptId": "1cf30d86-f80f-4a72-8677-09d3ef9baedf",
  "entrypoint": "claude-vscode",
  "version": "2.1.123"
}

Both messages share the same millisecond timestamp.

Pattern of when it fires

  • Always after a tool result (Bash, Read, Edit observed — not just TodoWrite as I'd originally suspected) — the prior assistant turn ended naturally
  • Always preceded by some idle gap (operator switched away / phone disconnect / browser tab refocus)
  • The next REAL user message after the synthetic stop reliably gets a normal model response, so neither the session nor the agent loop is wedged — just one spurious round of "I have nothing to do" in the UI

Probably-correlated state

  • ~/.claude/ide/ had 63 stale .lock files from dead code-server PIDs accumulated over weeks. Cleaning them up may or may not change the behavior — reporting in case it gives the team a hint about the reconnect handshake path that drives the auto-Continue.

Why this matters

The synthetic turn looks identical in the UI to a real assistant declining to act. Operators read it as "Claude has nothing to do" and re-prompt manually, which is wasted time and breaks the autonomous-completion contract that's increasingly important for long-running work. Also: if the auto-Continue mechanism is intentional (reconnect recovery), the synthetic response defeats the recovery — the model never runs.

Suggested directions

  1. If the meta-Continue is meant as a reconnect recovery signal, route it through actual model inference instead of synthesizing a "no response" closure.
  2. If the synthesizer is intentional (some race-resolution guard), at minimum make the text neutral so operators don't read it as a Claude reply — or hide it from the UI entirely.
  3. Either way, surface to the operator that the reconnect happened, since right now it looks like a silent assistant decision.

Happy to attach the full transcript privately if useful.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗