Preflight Checklist
What's Wrong?
MCP tool call results corrupt the SSE streaming connection, causing TypeError: network error on every tool invocation and wiping entire conversations from history without recovery. The issue is 100% reproducible: every single call to an MCP tool that executes a shell command triggers a network stream failure in the Claude Desktop client. After a cluster of 4 to 6 calls the failure escalates to message_store_sync_loss_accepted, permanently destroying the conversation with no way to recover it. This regression was not present approximately two app versions ago.
What Should Happen?
MCP tool calls should complete and return their result while the streaming SSE connection to api.anthropic.com remains fully stable. The conversation history should be preserved before, during, and after any number of tool call round-trips. The user should be able to invoke MCP tools repeatedly in a session without any risk of conversation data loss.
Error Messages/Logs
Error Messages/Logs
Extracted verbatim from ~/Library/Logs/Claude/claude.ai-web.log on 2026-04-04. The following cluster repeats for every single MCP tool call across the entire session (16 occurrences today alone):
2026-04-04 16:39:12 [error] [COMPLETION] Request failed TypeError: network error
2026-04-04 16:39:12 [error] [COMPLETION] Not retryable error, throwing
2026-04-04 16:39:12 [error] [COMPLETION] Non-API stream error TypeError: network error
2026-04-04 16:39:12 [error] Uncaught (in promise) TypeError: network error
2026-04-04 16:39:16 [error] [COMPLETION] Failed all attempts to invalidate conversation tree with consistency=eventual [object Object]
2026-04-04 16:39:17 [warn] [COMPLETION] message_store_sync_blocked [object Object]
Two separate occurrences escalated to full conversation destruction:
2026-04-04 17:50:48 [warn] [COMPLETION] message_store_sync_loss_accepted [object Object]
2026-04-04 18:11:33 [warn] [COMPLETION] message_store_sync_loss_accepted [object Object]
Total in claude.ai-web.log today: 37 network errors, 2 conversation wipe events.
Cross-referencing mcp-server-cortex.log (which timestamps in UTC, local timezone is UTC-3) confirms that every single network error fires at the exact moment a tool result is returned from the MCP server. Zero errors occur during idle periods. The most direct example: an MCP tool ran echo ok via SSH, completed in under 2 seconds, and triggered TypeError: network error at the precise millisecond the result arrived. This rules out timeout as the sole cause. The corruption occurs at result delivery, not during execution.
Steps to Reproduce
- Install Claude Desktop v1.569.0 on macOS (arm64).
- Configure any MCP server that exposes a tool executing shell commands via child_process.spawn over stdio transport. The MCP server must use @modelcontextprotocol/sdk and communicate via stdin/stdout.
- Start a new conversation in Claude Desktop.
- Ask Claude to use the MCP tool to run any command, including trivially simple ones (e.g., echo hello, git status, ls).
- Observe that ~/Library/Logs/Claude/claude.ai-web.log immediately logs TypeError: network error and Failed all attempts to invalidate conversation tree with consistency=eventual.
- Repeat the tool invocation 3 to 5 more times in the same conversation.
- Observe message_store_sync_loss_accepted — the entire conversation disappears from Claude Desktop with no recovery option.
No specific project, code, or repository is required. Any MCP server with a command-execution tool reproduces this immediately and consistently.
Claude Model
Sonnet (default)
Is this a regression?
Yes, this worked in a previous version
Last Working Version
No response
Claude Code Version
1.569.0 (darwin, arm64, Node 24.14.0)
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
This bug has a direct financial impact. Each destroyed conversation contains work performed against the Anthropic API. Tokens are consumed and billed during the session. When the conversation is wiped by message_store_sync_loss_accepted, all context, tool results, and progress are permanently lost. The user must start over, re-consuming tokens for the same work. On a heavy development day (274 MCP tool calls logged today), this represents substantial wasted spend on a Team subscription.
The regression aligns with a recent Claude Desktop update. Prior versions of the app handled MCP tool call round-trips without any streaming disruption.
A note that may assist the engineering team: a recent Claude Code release added CLAUDE_STREAM_IDLE_TIMEOUT_MS to configure the streaming idle watchdog threshold, defaulting to 90 seconds. It is possible the same watchdog is active in Claude Desktop's streaming layer and is being triggered not by idleness but by the act of flushing a tool_result chunk — particularly for tool calls that involve subprocess execution and produce buffered output. The corruption consistently fires at result delivery rather than during execution, which points to a flush, chunk framing, or connection state management issue introduced in a recent build.
Full log files attached here:
~/Library/Logs/Claude/claude.ai-web.log
~/Library/Logs/Claude/mcp-server-cortex.log
~/Library/Logs/Claude/main.log
claude.ai-web.log
mcp-server-cortex.log
main.log
Preflight Checklist
What's Wrong?
MCP tool call results corrupt the SSE streaming connection, causing TypeError: network error on every tool invocation and wiping entire conversations from history without recovery. The issue is 100% reproducible: every single call to an MCP tool that executes a shell command triggers a network stream failure in the Claude Desktop client. After a cluster of 4 to 6 calls the failure escalates to message_store_sync_loss_accepted, permanently destroying the conversation with no way to recover it. This regression was not present approximately two app versions ago.
What Should Happen?
MCP tool calls should complete and return their result while the streaming SSE connection to api.anthropic.com remains fully stable. The conversation history should be preserved before, during, and after any number of tool call round-trips. The user should be able to invoke MCP tools repeatedly in a session without any risk of conversation data loss.
Error Messages/Logs
Steps to Reproduce
No specific project, code, or repository is required. Any MCP server with a command-execution tool reproduces this immediately and consistently.
Claude Model
Sonnet (default)
Is this a regression?
Yes, this worked in a previous version
Last Working Version
No response
Claude Code Version
1.569.0 (darwin, arm64, Node 24.14.0)
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
This bug has a direct financial impact. Each destroyed conversation contains work performed against the Anthropic API. Tokens are consumed and billed during the session. When the conversation is wiped by message_store_sync_loss_accepted, all context, tool results, and progress are permanently lost. The user must start over, re-consuming tokens for the same work. On a heavy development day (274 MCP tool calls logged today), this represents substantial wasted spend on a Team subscription.
The regression aligns with a recent Claude Desktop update. Prior versions of the app handled MCP tool call round-trips without any streaming disruption.
A note that may assist the engineering team: a recent Claude Code release added CLAUDE_STREAM_IDLE_TIMEOUT_MS to configure the streaming idle watchdog threshold, defaulting to 90 seconds. It is possible the same watchdog is active in Claude Desktop's streaming layer and is being triggered not by idleness but by the act of flushing a tool_result chunk — particularly for tool calls that involve subprocess execution and produce buffered output. The corruption consistently fires at result delivery rather than during execution, which points to a flush, chunk framing, or connection state management issue introduced in a recent build.
Full log files attached here:
~/Library/Logs/Claude/claude.ai-web.log
~/Library/Logs/Claude/mcp-server-cortex.log
~/Library/Logs/Claude/main.log
claude.ai-web.log
mcp-server-cortex.log
main.log