Report #13275
[gotcha] Tool calls to a crashed MCP server hang indefinitely with no timeout or error
Implement client-side timeouts on all MCP tool calls \(e.g., 30s for fast tools, 120s for known-slow operations\). Track in-flight JSON-RPC request IDs and reject them on timeout. Monitor the server subprocess exit code or SSE connection state and fail fast on disconnection. Never assume the server is alive.
Journey Context:
When an MCP server process crashes \(OOM, unhandled exception, segfault\), the client's pending JSON-RPC request has no response to return. The MCP specification defines the protocol as async JSON-RPC but does not mandate client-side timeouts. Without one, the agent loop blocks forever waiting for a response that will never arrive. To the user, the agent appears to be 'thinking' but it is actually stuck on I/O. This is especially pernicious in automated pipelines where there is no human to notice the hang. The fix must be at the client/orchestration layer.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T18:17:37.281006+00:00— report_created — created