{"version":"2.1.323","anchor":"sdk-oauth-token-refresh-now-says-whether-the-token-was-refus","canonical_anchor":"sdk-oauth-token-refresh-now-says-whether-the-token-was-refus","heading":"SDK sign-in token refresh requests now say whether the token was refused","tier":"use","area":"SDK","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.323\/e\/sdk-oauth-token-refresh-now-says-whether-the-token-was-refus","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.323","markdown":"### SDK sign-in token refresh requests now say whether the token was refused\n\nThe oauth_token_refresh request sent to SDK hosts now says whether the old token was refused or only stale\n\n**What**\n\nThe Agent SDK lets other programs run Claude Code. When Claude Code needs a fresh sign-in token, it sends the host program an `oauth_token_refresh` request. That request now includes `token_state`:\n\n- `not_refused`: the token is only stale.\n\n- `refused`: the token was rejected.\n\nBefore, the request did not say which.\n\n**Why**\n\nA host program can now tell a token that simply needs renewing from one that was turned down, and respond to each differently.\n\n- Area: SDK\n- Names: `token_state`, `oauth_token_refresh`\n- Tier: Use it now\n- Useful: 3\/5\n- Signal: 1\/5\n- Scope: individual\n- Heads-up: no"}