{"version":"2.1.307","anchor":"mcp-tool-call-errors-with-no-side-effects-are-now-treated-as","canonical_anchor":"mcp-tool-call-errors-with-no-side-effects-are-now-treated-as","heading":"Some MCP tool failures now count as a stopped call instead of an error","tier":"internal","area":"MCP","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.307\/e\/mcp-tool-call-errors-with-no-side-effects-are-now-treated-as","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.307","markdown":"### Some MCP tool failures now count as a stopped call instead of an error\n\nAn MCP tool call that fails with a certain error is now treated as cancelled when it may not have run or the tool is read-only\n\n**What**\n\nMCP tools are extra tools supplied by separate programs called MCP servers. When a call to one of them fails with a particular kind of error, Claude Code now treats it as a call that was stopped rather than one that went wrong, in either of these cases:\n\n- the call may not have run at all\n\n- the tool marks itself as read-only with `readOnlyHint`\n\nBefore, only one narrower case was handled this way.\n\n**Why**\n\nRead-only tools, and calls that never got going, should now fail more quietly when a call is aborted or retried.\n\n- Area: MCP\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 1\/5\n- Scope: individual\n- Heads-up: no"}