{"version":"2.1.323","anchor":"control-request-error-code-list-gains-unsupported-request-c","canonical_anchor":"control-request-error-code-list-gains-unsupported-request-c","heading":"More precise error codes for programs that control Claude Code","tier":"notice","area":"SDK","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.323\/e\/control-request-error-code-list-gains-unsupported-request-c","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.323","markdown":"### More precise error codes for programs that control Claude Code\n\nError replies to control requests now document codes for unsupported requests, model check failures, uploads and MCP calls\n\n**What**\n\nPrograms can drive Claude Code through the SDK, a software kit for controlling it from code, by sending it control requests. When one fails, the reply carries an error code. The documented list of those codes now includes:\n\n- `unsupported_request`, for any request this end does not serve\n\n- `check_unreachable`, `check_server_error`, `oauth_org_not_allowed` and `hooks_unchecked`, finer reasons for a failed model change\n\n- `credential_name`, for reading a file to upload\n\n- `mcp_call_refusal_limit` and the other `mcp_call_*` codes, for claude-code-server tenants\n\nBefore, the list stopped at model change codes such as `check_failed` and `check_rejected`.\n\n**Why**\n\nA program can now tell a deliberate refusal apart from a real failure, and retry only the cases worth retrying.\n\n- Area: SDK\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 1\/5\n- Scope: individual\n- Heads-up: no"}