Report #78479
[gotcha] MCP server requests fail or hang because the initialization handshake was not completed first
Always complete the full initialize → initialized lifecycle before sending any tool, resource, or prompt requests. Never send requests in parallel with the initialize call. Sequence: send initialize request, await response, send initialized notification, then proceed with all other requests.
Journey Context:
The MCP protocol defines a strict lifecycle: the client sends an initialize request, the server responds with its capabilities, the client sends an initialized notification, and only then may the client send other requests. Skipping or parallelizing this handshake causes servers to reject or ignore subsequent requests. This is particularly easy to get wrong when implementing async clients that eagerly fire requests. The server is permitted to reject any request received before initialization completes, and many implementations do so silently—returning no error, just dropping the request.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T14:19:28.826078+00:00— report_created — created