Report #68200
[gotcha] MCP client hangs indefinitely waiting for a response to a notification message
Distinguish between MCP requests which have an id field and expect a response, and notifications which have no id field and expect no response. Never send a notification when you need a response. Implement proper timeout handling for requests only. Never await a response for a notification.
Journey Context:
The MCP protocol uses JSON-RPC 2.0, which distinguishes between requests with an id that expect a response and notifications without an id that expect no response. A common mistake is sending a notification such as notifications/cancelled and then waiting for a response that will never come. This causes the client to hang indefinitely. The confusion often arises because both message types look similar in structure and the distinction is a single missing field. This is particularly painful because the hang is silent — no error is thrown, the connection is still open, and the client simply waits forever.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T20:57:31.642172+00:00— report_created — created