{"version":"2.1.290","anchor":"mcp-tool-calls-to-some-http-servers-get-per-call-watchdog-ho","canonical_anchor":"mcp-tool-calls-to-some-http-servers-get-per-call-watchdog-ho","heading":"MCP tool calls stop instead of hanging when the answer stream ends with no answer","tier":"notice","area":"MCP","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.290\/e\/mcp-tool-calls-to-some-http-servers-get-per-call-watchdog-ho","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.290","markdown":"### MCP tool calls stop instead of hanging when the answer stream ends with no answer\n\nA new per-call watchdog follows each MCP request and aborts the tool call with an error if its answer stream ends without an answer\n\n**Unclear.** It is not clear which HTTP servers are covered, or whether this tracking is active for anyone.\n\n**What**\n\nMCP servers are outside programs that give Claude Code extra tools. Each call to one of those tools now has its own watchdog, a check that follows whether the call is still making progress.\n\n- Tracking: for HTTP MCP servers that match a URL check, sending a request is wrapped so the watchdog learns when the request was sent, when it was taken, and when its answer stream ended. Incoming responses mark the request as answered.\n\n- Abort instead of hang: if the answer stream ends mid-call with no answer, the tool call aborts with a `downstream_unreachable` error rather than waiting forever.\n\n- The call also records `claudecode\/toolUseId`.\n\nBefore, the only watchdog watched for transport errors and gave up with \"response presumed lost\" after 90 seconds.\n\n**Why**\n\nA tool call whose connection dies should now fail promptly with an error instead of leaving your session stuck. When slow MCP calls time out may also differ from before.\n\n- Area: MCP\n- Tier: You'll notice\n- Useful: 3\/5\n- Signal: 1\/5\n- Scope: individual\n- Heads-up: no"}