[BUG] VSCode extension streaming errors: content_block_delta and message_stop without a current message (regression after v2.1.235)
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 arrivingerror 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 thecontent_block_deltaandmessage_stoperrors persist, andresponse stopped arrivingcontinues to occur on v2.1.241 - The extension logs do not contain stack traces for the
content_block_deltaandmessage_stoperrors — 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