{"version":"2.1.317","anchor":"new-api-error-kinds-malformed-tool-use-exhausted-and-networ","canonical_anchor":"new-api-error-kinds-malformed-tool-use-exhausted-and-networ","heading":"SDK errors now name a blocked network location and exhausted tool-call retries","tier":"notice","area":"SDK","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317\/e\/new-api-error-kinds-malformed-tool-use-exhausted-and-networ","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.317","markdown":"### SDK errors now name a blocked network location and exhausted tool-call retries\n\nSDK error kinds now include `network_edge_blocked` and `malformed_tool_use_exhausted`, and `empty_completion` now covers repeated retries\n\n**What**\n\nThe SDK is the kit developers use to run Claude Code from their own programs. It labels each error with a kind, and the list of kinds gains two:\n\n- `malformed_tool_use_exhausted`: the model's reply stopped to use a tool but held no tool request, and retries ran out. This was already reported as a reason a run stopped, and it is now an error kind as well.\n\n- `network_edge_blocked`: the firewall in front of the API refused the network location the request came from.\n\nThe description of `empty_completion` now also covers a retry that came back empty again.\n\n**Why**\n\nPrograms built on the SDK can now react to these cases by name. A refusal based on network location shows up as its own kind of error.\n\n- Area: SDK\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 2\/5\n- Scope: individual\n- Heads-up: no"}