Report #79612
[gotcha] MCP SSE transport silently disconnects — agent hangs indefinitely waiting for tool response
Implement a connection health check \(periodic ping or read timeout\) for SSE transport. On disconnect detection, re-establish the connection, re-send the initialize handshake, re-subscribe to the message endpoint, then retry the pending tool call.
Journey Context:
The MCP SSE transport is a long-lived HTTP connection that can be dropped by reverse proxies, load balancers, or network idle timeouts without any error signal reaching the client. The agent sends a tools/call request and waits for a Server-Sent Event response that will never arrive because the connection is dead. Unlike WebSocket, SSE has no mandatory ping/pong frame. The MCP spec describes the reconnection flow \(client reconnects, re-initializes, resubscribes\), but if the agent never detects the disconnection, it never triggers reconnection. This manifests as an agent that appears to "think" forever on a tool call — no error, no timeout, just silence. Adding a read timeout \(e.g., 30 seconds of no SSE events\) and a reconnection path is essential for production reliability.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T16:13:36.233834+00:00— report_created — created