Follow Discord
Sweep 06 Nov 2026 · 01:32Z Build v2.1.319 537 read Stable v2.1.311 Latest v2.1.318 Next v2.1.319 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.274 ·

API errors now carry machine-readable error codes

API error responses now include a typed apiError code (and often apiErrorParams) instead of just a human-readable message

Group of 2 Under the hood Improvements
JSON All of v2.1.274
Under the hoodTier: how much it should matter to you
2Useful: my rating, 1 to 5
2Signal: worth watching, 1 to 5
API ErrorsArea: what it touches
ImprovementsKind: in v2.1.274,
ImprovementsSection of the release

What

  • Many request/auth error branches in the API-error formatter now attach a machine-readable apiError code (and sometimes apiErrorParams) alongside the existing human-readable message. This covers tool-use concurrency conflicts, duplicate or orphaned tool_use ids, using an effort setting without thinking enabled, advisor-model incompatibility, disabled API-key auth, and provider credential failures for Bedrock, Vertex, and Foundry (which now include a remedy param).
  • The catch-all error handler now classifies more failure modes with their own typed apiError codes instead of lumping them into a generic error: no_response, tls_untrusted_ca, gateway_content_type (a Bedrock proxy rewriting the event stream), provider_credentials (with apiErrorParams: {provider, remedy: 'host_managed'}), and gateway_signin_required/gateway_session_expired (with remedy: 'gateway_token' when the token came from the environment). Previously most of these produced a generic server_error/unknown message with no machine-readable cause.

Why Typed error codes let tooling and error handling react to the specific cause of an API failure instead of just showing a generic message, making it easier to tell the user what went wrong and how to fix it.

See this entry in the whole of v2.1.274 →

Feedback