{"version":"2.1.248","anchor":"two-distinct-oauth-refresh-failures-with-recovery-text","canonical_anchor":"two-distinct-oauth-refresh-failures-with-recovery-text","heading":"Two distinct OAuth refresh failures with recovery text","tier":"notice","area":"Auth","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.248\/e\/two-distinct-oauth-refresh-failures-with-recovery-text","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.248","markdown":"### Two distinct OAuth refresh failures with recovery text\n\nLogin refresh failures now say whether to run \/login or that another session holds the lock.\n\n**What**\n\nA failed login-token refresh now says which failure it was: the refresh token is no longer valid, in which case it tells you to run `\/login`, or another Claude Code process is currently holding the refresh lock. This is mostly what you see when two sessions try to refresh credentials at the same time.\n\n**Evidence**\n\n`OAuth access token could not be refreshed: another Claude Code process is holding the refresh lock`\n\n- Area: Auth\n- Names: `\/login`\n- Tier: You'll notice\n- Useful: 4\/5\n- Signal: 2\/5"}