[BUG] VSCode extension streaming errors: content_block_delta and message_stop without a current message (regression after v2.1.235)

Status Open
Reported on v2.1.235
Maintainer reply None cached
Activity 0 comments · opened Aug 23, 2026

Description

Starting around August 21, 2026, I began experiencing three recurring streaming errors in the VSCode extension:

  • "Received content_block_delta without a current message"
  • "Received message_stop without a current message"
  • "API Error: The response stopped arriving. The response above may be incomplete."

All three errors interrupt the current session. The errors are intermittent but frequent — 15+ occurrences across 3 days.

Environment

  • Claude Code VSCode extension: Currently v2.1.241 (errors first appeared on v2.1.238)
  • VSCode: 1.134.0 (updated Aug 18)
  • OS: macOS darwin-arm64
  • Node: v24.10.0

Version correlation from VSCode extension logs

The extension logs show clear version/error correlation. No errors occurred on v2.1.235. The extension auto-updated to v2.1.238 (skipping .236 and .237), and the first error appeared ~4 hours later. Errors have persisted through v2.1.240 and v2.1.241.

Full timeline:

| Time | Version | Event |
|------|---------|-------|
| Aug 21, 12:40 PM | 2.1.235 | Session starts — no errors on this version |
| Aug 21, 12:45 PM | 2.1.238 | Extension auto-updates (skipped .236 and .237) |
| Aug 21, 4:32 PM | 2.1.238 | First response stopped arriving |
| Aug 21, 11:06 PM | 2.1.238 | Second response stopped arriving (sub-agent) |
| Aug 21, 11:08 PM | 2.1.238 | First content_block_delta without a current message |
| Aug 22, 8:11 AM | 2.1.238 | Second content_block_delta error |
| Aug 22, 9:26 AM | 2.1.238 | Third content_block_delta error |
| Aug 22, 9:37 AM | 2.1.238 | Third response stopped arriving (with streaming idle timeout in logs) |
| Aug 22, 11:21 AM | 2.1.240 | Extension auto-updates |
| Aug 22, 3:44 PM | 2.1.240 | Fourth content_block_delta error |
| Aug 22, 4:42 PM | 2.1.240 | Fourth response stopped arriving |
| Aug 22, 6:53 PM | 2.1.240 | First message_stop without a current message |
| Aug 22, 8:23 PM | 2.1.240 | Second message_stop error |
| Aug 22, 8:25 PM | 2.1.240 | Third message_stop error |
| Aug 22, 11:08 PM | 2.1.240 | Fifth response stopped arriving |
| Aug 22, 11:59 PM | 2.1.240 | Sixth response stopped arriving |
| Aug 23, 9:03 AM | 2.1.241 | Extension auto-updates |
| Aug 23, 10:38 AM | 2.1.241 | content_block_delta error (still occurring) |
| Aug 23, 12:10 PM | 2.1.241 | Seventh response stopped arriving (two sessions simultaneously) |

Since the extension skipped v2.1.236 and v2.1.237, I cannot determine which of .236, .237, or .238 introduced the regression.

Sanitized log snippets

1. Clean startup on v2.1.235 (Aug 21, 12:40 PM)

2026-08-21 12:40:14.212 [info] AuthManager initialized
2026-08-21 12:40:14.213 [info] Claude code extension is now active?
2026-08-21 12:40:14.213 [info] MCP Server running on port 34521 (localhost only)
...
2026-08-21 12:40:20.409 [info] Spawning Claude with SDK query function - cwd: <redacted>, permission mode: acceptEdits, version: 2.1.235, <redacted>/anthropic.claude-code-2.1.235-darwin-arm64/resources/native-binary/claude, resume: <session-id>
2026-08-21 12:40:20.430 [info] Spawning Claude with SDK query function - cwd: <redacted>, permission mode: default, version: 2.1.235, <redacted>/anthropic.claude-code-2.1.235-darwin-arm64/resources/native-binary/claude, resume: undefined

2. Auto-update to v2.1.238 (Aug 21, 12:45 PM — 5 minutes later)

2026-08-21 12:45:21.404 [info] Spawning Claude with SDK query function - cwd: <redacted>, permission mode: default, version: 2.1.238, <redacted>/anthropic.claude-code-2.1.238-darwin-arm64/resources/native-binary/claude, resume: undefined
2026-08-21 12:45:21.406 [info] Spawning Claude with SDK query function - cwd: <redacted>, permission mode: acceptEdits, version: 2.1.238, <redacted>/anthropic.claude-code-2.1.238-darwin-arm64/resources/native-binary/claude, resume: <session-id>

3. First response stopped arriving error (Aug 21, 4:32 PM — on v2.1.238)

2026-08-21 16:32:47.129 [info] From claude: [DEBUG] Fast mode unavailable: Fast mode has been disabled by your organization
2026-08-21 16:32:47.129 [info] From claude: [DEBUG] [API:timing] dispatching to firstParty model=claude-opus-4-6[1m]
2026-08-21 16:32:47.130 [info] From claude: [DEBUG] [API REQUEST] /v1/messages x-client-request-id=<redacted> source=agent:builtin:general-purpose
2026-08-21 16:32:48.954 [info] Received message from webview: {"type":"request",...,"request":{"type":"update_session_state","sessionId":"<session-id>","state":"running","title":"<redacted>"}}
2026-08-21 16:32:48.956 [info] Received message from webview: {"type":"io_message",...,"text":"I see an error - API Error: The response stopped arriving. The response above may be incomplete."}

4. response stopped arriving with internal streaming timeout (Aug 22, 9:37 AM — on v2.1.238)

This is the most informative occurrence — the logs captured the internal cause:

2026-08-22 09:37:41.140 [ERROR] Streaming idle timeout (byte-level): stream idle: no bytes for 180000ms, aborting stream
2026-08-22 09:37:41.141 [WARN] Stream idle timeout after 1 block(s) yielded — finalizing partial response
2026-08-22 09:37:41.145 [WARN] [Stall] tool_dispatch_end tool=WebFetch toolUseId=<redacted> outcome=error durationMs=187458
2026-08-22 09:37:41.145 [DEBUG] WebFetch tool error (187458ms): API Error: The response stopped arriving. The response above may be incomplete.
2026-08-22 09:37:41.149 [DEBUG] attribution header x-anthropic-billing-header: cc_version=2.1.238...; cc_entrypoint=claude-vscode; ... cc_is_subagent=true; ...

The stream went idle for 180 seconds (no bytes received), triggering a timeout and abort. This occurred inside a sub-agent (cc_is_subagent=true) during a WebFetch tool call.

5. First content_block_delta error (Aug 21, 11:08 PM — on v2.1.238)

2026-08-21 23:07:52.281 [info] From claude: [DEBUG] Hook output does not start with {, treating as plain text
2026-08-21 23:08:04.034 [info] Received message from webview: {"type":"request",...,"request":{"type":"update_session_state","sessionId":"<session-id>","state":"running","title":"<redacted>"}}
2026-08-21 23:08:04.039 [info] Received message from webview: {"type":"launch_claude","channelId":"...","cwd":"<redacted>","resume":"<session-id>","permissionMode":"acceptEdits","thinkingLevel":"default_on"}
2026-08-21 23:08:04.041 [info] Launching Claude on channel: <channel-id>
2026-08-21 23:08:04.043 [info] Received message from webview: {"type":"io_message",...,"text":"now I'm getting a new error: Received content_block_delta without a current message"}
2026-08-21 23:08:04.084 [info] Spawning Claude with SDK query function - cwd: <redacted>, permission mode: acceptEdits, version: 2.1.238, <redacted>/anthropic.claude-code-2.1.238-darwin-arm64/resources/native-binary/claude, resume: <session-id>

6. First message_stop error (Aug 22, 6:53 PM — on v2.1.240)

2026-08-22 18:53:04.217 [info] From claude: [INFO] [Stall] tool_dispatch_end tool=Bash toolUseId=<redacted> outcome=ok durationMs=271
2026-08-22 18:53:04.251 [info] From claude: [DEBUG] Hook output does not start with {, treating as plain text
2026-08-22 18:53:04.435 [info] Received message from webview: {"type":"request",...,"request":{"type":"update_session_state","sessionId":"<session-id>","state":"running","title":"<redacted>"}}
2026-08-22 18:53:04.441 [info] Received message from webview: {"type":"launch_claude","channelId":"...","cwd":"<redacted>","resume":"<session-id>","permissionMode":"acceptEdits","thinkingLevel":"default_on"}
2026-08-22 18:53:04.442 [info] Launching Claude on channel: <channel-id>
2026-08-22 18:53:04.444 [info] Received message from webview: {"type":"io_message",...,"text":"I got an error message - Received message_stop without a current message"}
2026-08-22 18:53:04.464 [info] From claude: [INFO] [Stall] tool_dispatch_end tool=Bash toolUseId=<redacted> outcome=ok durationMs=515
2026-08-22 18:53:04.498 [info] From claude: [DEBUG] attribution header x-anthropic-billing-header: cc_version=2.1.240...; cc_entrypoint=claude-vscode; ... cc_is_subagent=true; ...

The message_stop error occurred during a sub-agent tool dispatch (cc_is_subagent=true).

Additional observations

  • Sub-agents are used frequently; all three error types often occur during sessions with active sub-agents
  • VSCode was updated to 1.134.0 on August 18 (3 days before the errors started). The errors began after the Claude Code extension auto-updated on Aug 21, but the VSCode update is close enough in time that it could be related
  • Remote Control is not in use
  • The response stopped arriving error has an internal cause visible in the logs: a 180-second streaming idle timeout ("no bytes for 180000ms, aborting stream"). v2.1.240 claimed to fix "stream idle timeout errors" but the content_block_delta and message_stop errors persist, and response stopped arriving continues to occur on v2.1.241
  • The extension logs do not contain stack traces for the content_block_delta and message_stop errors — only user messages reporting them appear, suggesting these are surfaced to the UI from a layer that does not write to the extension host log
  • No errors of any of these types occurred before the v2.1.235 → v2.1.238 update

View original on GitHub ↗