{"version":"2.1.235","anchor":"new-account-on-hold-auth-state-dark-launched-behind-a-gat","canonical_anchor":"new-account-on-hold-auth-state-dark-launched-behind-a-gat","heading":"New \"account on hold\" auth state, dark-launched behind a gate","tier":"soon","area":"Auth","url":"https:\/\/changelogs.core-directive.com\/v\/2.1.235\/e\/new-account-on-hold-auth-state-dark-launched-behind-a-gat","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.235","markdown":"### New \"account on hold\" auth state, dark-launched behind a gate\n\nA new \"account on hold\" OAuth error state is dark-launched behind a gate, not yet visible to this site's account\n\nOAuth failures whose body carries an `account_on_hold` error are now recognised as their own kind rather than being folded into invalid_grant\/refresh handling. Refresh classification returns `account_on_hold`, the retry path stops retrying, and a dedicated `OAuthAccountOnHoldError` (message \"OAuth account is on hold\") is thrown carrying an appeal URL. `account_on_hold` is spliced into the API-error union and the login-screen error list, and affected users would see text built around \"Your account is on hold and can't use Claude Code. View details or appeal: \" with a claude.ai\/restricted-style URL. All detection short-circuits to null unless the controlling gate reads true.\n\nThe flag server returned off for both this site's account and the anonymous baseline, and no reading has been taken under this release yet.\n\n- Flag `tengu_lively_beaver`: Off in both readings (read for one account on one subscription tier against v2.1.235; this account: off, anonymous baseline: off, compiled default: not a boolean we can read)\n- Area: Auth\n- Tier: Nothing to try yet\n- Useful: 5\/5\n- Signal: 4\/5\n- Present in the build but not switched on"}