Report #94916
[gotcha] MCP tool call hangs indefinitely with no error, timeout, or feedback
Implement client-side timeouts on every MCP tool call \(e.g., 30 seconds default, configurable per tool\). For stdio transport, monitor the server process exit event and fail all pending requests. For SSE transport, implement connection health checks. Surface timeout errors clearly so the model can decide whether to retry or pivot.
Journey Context:
MCP uses JSON-RPC 2.0 over stdio or SSE transports. If the server process crashes, the stdio pipe closes, but pending JSON-RPC requests have already been sent and will never receive responses. The JSON-RPC spec doesn't mandate request timeouts. Without explicit timeout handling, the agent's execution loop blocks forever waiting for a response that will never come. This is especially insidious because it looks like the agent is 'thinking' when it's actually stuck on a dead request.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T17:53:55.675102+00:00— report_created — created