{"version":"2.1.227","anchor":"mcp-connection-timeouts-are-reported-as-timeouts","canonical_anchor":"mcp-connection-timeouts-are-reported-as-timeouts","heading":"MCP connection timeouts are reported as timeouts","tier":"notice","area":"MCP","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.227\/e\/mcp-connection-timeouts-are-reported-as-timeouts","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.227","markdown":"### MCP connection timeouts are reported as timeouts\n\nA slow MCP server is now reported as a timeout rather than a vague connection failure.\n\n**What**\n\nAn MCP server that fails to connect because it timed out is now labelled with its own `CONNECT_TIMEOUT` code instead of being lumped in with generic failures, so the `Connection failed` message tells you the server was too slow rather than unreachable or misconfigured.\n\n**Details**\n\n- A timeout from the MCP SDK during connect is reclassified to this code, which joins the existing set of MCP failure codes such as `ENDPOINT_NOT_FOUND` and `AUTH_HEADER_REJECTED`.\n- Emits `mcp_connect_failed` telemetry with `reason: \"timeout\"`.\n- Paired with `tengu_mcp_connect_timeout_retry`, which falls back to on; with no server value the timeout tagging is active.\n\n**Evidence**\n\n`CONNECT_TIMEOUT`, `Object.assign(t, { code: \"CONNECT_TIMEOUT\" })`, `mcp_connect_failed`\n\n- Flag `tengu_mcp_connect_timeout_retry`: Not enough to say (read for one account on one subscription tier against v2.1.227; this account: no value returned, anonymous baseline: no value returned, compiled default: on) These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.\n- Area: MCP\n- Tier: You'll notice\n- Useful: 3\/5\n- Signal: 1\/5"}