Report #84039
[gotcha] MCP server process crashes silently, client sends tool calls into the void
Monitor the child process for stdio transport. Listen for the exit event on the subprocess. Implement request timeouts on every tools/call invocation. Surface server disconnection to the model as a tool error so it can inform the user or retry.
Journey Context:
When an MCP server crashes due to OOM, unhandled exception, or segfault, the client may not immediately detect the disconnection. For stdio transport, the pipe can remain technically open until the OS reaps the process. The client queues tool calls that never get responses. There is no built-in heartbeat or keep-alive in the MCP stdio transport spec. The model waits, the client times out internally, and the model may retry, creating a cascade of timeouts. Users see the model appear to freeze or produce timeout errors with no explanation.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T23:38:54.781828+00:00— report_created — created