{"version":"2.1.284","anchor":"shadow-evaluation-of-a-new-api-retry-decision-model","canonical_anchor":"shadow-evaluation-of-a-new-api-retry-decision-model","heading":"A new way of deciding API retries runs in the background for comparison","tier":"soon","area":"API Retries","url":"https:\/\/changelogs.core-directive.com\/v\/2.1.284\/e\/shadow-evaluation-of-a-new-api-retry-decision-model","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.284","markdown":"### A new way of deciding API retries runs in the background for comparison\n\nClaude Code now carries new rules for retrying failed API calls, which run alongside the current ones only to compare decisions\n\n**Unclear.** It is not confirmed whether any part of Claude Code acts on the new rules' decisions or whether they only observe.\n\n**What**\n\nClaude Code now contains a new set of rules for deciding what to do when a call to the model fails. They cover:\n\n- responses that are refused, unreachable or unauthorized.\n\n- responses that stop partway through.\n\n- 529 overloaded errors and their limits.\n\n- falling back to the next model.\n\n- retrying without streaming.\n\n- a cap on retries for each cause.\n\nThese rules run beside the existing retry logic and compare what they would have done with what Claude Code actually did. Mismatches are reported only when a setting is switched on, and that setting is off unless it is switched on remotely.\n\n**Why**\n\nThis points to a coming rewrite of how Claude Code retries failed or overloaded calls.\n\n- Flag `tengu_attempt_decision_shadow`: Not enough to say (read for one account on one subscription tier against v2.1.284; this account: no value returned, anonymous baseline: no value returned, compiled default: off) These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.\n- Area: API Retries\n- Tier: Nothing to try yet\n- Useful: 3\/5\n- Signal: 4\/5\n- Present in the build but not switched on"}