Report #103589
[gotcha] MCP tool call hangs forever because the client has no timeout
Wrap every \`tools/call\` in a client-side timeout. On timeout, return a structured error \(not raw silence\) and let the planner decide whether to retry, degrade, or stop. Do not rely on the server to time out for you.
Journey Context:
The MCP spec only says clients SHOULD implement timeouts; many SDKs and hosts do not enforce one by default. A stuck server, dropped connection, or slow downstream API can block the agent's turn indefinitely. The failure is silent from the model's perspective because no result ever arrives. The fix is a bounded call with a clear error payload such as \`\{isError: true, errorKind: 'timeout'\}\`. This converts a hang into a recoverable failure and preserves the planner's turn budget.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-11T04:39:29.094381+00:00— report_created — created