{"version":"2.1.307","anchor":"mcp-closed-connection-errors-now-tell-the-model-to-send-mcp","canonical_anchor":"mcp-closed-connection-errors-now-tell-the-model-to-send-mcp","heading":"MCP connection errors now say whether the tool call may have run","tier":"notice","area":"MCP","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.307\/e\/mcp-closed-connection-errors-now-tell-the-model-to-send-mcp","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.307","markdown":"### MCP connection errors now say whether the tool call may have run\n\nWhen an MCP connection closes or expires mid-call, the error now says whether the tool may have run before suggesting `mcp_reconnect`\n\n**What**\n\nMCP servers are add-on programs that provide tools. When the connection to one closes or its session expires, the error used to always read: 'MCP session expired for ... send mcp_reconnect and retry'. Error texts are now built by a shared helper and depend on what happened:\n\n- Connection closed during the call: 'connection closed before the tool call was answered. The tool may have run: check whether it did before running it again.'\n\n- Connection closed before the call ran, or the session expired: Claude is told to send `mcp_reconnect` and retry.\n\nThe `McpSessionExpiredError` now records what kind of expiry it was, with new kinds `connection_closed_call_refused` and `connection_closed_call_not_run` alongside the older `session_expired_404` and `connection_closed_http`. Whether each call was sent or refused is tracked per call, and `mcp_call` errors use the same helper.\n\n**Why**\n\nClaude and you can tell whether retrying a tool is safe, which helps avoid running something with side effects twice.\n\n- Area: MCP\n- Tier: You'll notice\n- Useful: 1\/5\n- Signal: 1\/5\n- Scope: individual\n- Heads-up: no"}