An MCP server that stalls on the version probe is retried as legacy instead of erroring out.
What's wrong with this entry?
If the probe Claude Code sends to work out an MCP server's protocol version times out, the connection is retried with the pinned legacy protocol inside the remaining time budget rather than surfacing as a connection error.
- The timeout is tagged
probe_timeout(distinct from the existingprobe_failed) in the disconnect cause, and logged as "version negotiation probe timed out on the ... transport" followed by "reconnecting pinned legacy within the remaining budget". - If the pinned-legacy retry then fails with a typed non-auth, non-timeout error, the original timeout classification is preserved so the connect stays eligible for the normal retry ladder.
- Previously a probe timeout on http or sse transports simply failed the connection.
probe_timeout, preserving the timeout classification so the connect stays ladder-retryable
Strings lifted out of the shipped bundle, so the claim above can be checked against them.