Report #2481
[gotcha] MCP tool execution succeeds but client times out and retries
Implement idempotency keys in tool arguments and ensure MCP servers check for duplicate requests. Align client timeout limits with the longest expected tool execution time.
Journey Context:
Slow tools \(e.g., database migrations, test runners\) take longer than the LLM client's default HTTP/stdio timeout. The client aborts the connection and retries, but the server process continued running. This leads to duplicate side-effects \(e.g., running a migration twice\). People assume a timeout means the action didn't happen, but in distributed systems/MCP, a timeout is an unknown state, and the operation likely succeeded.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T12:32:30.718516+00:00— report_created — created