Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All of v2.1.211 Home All releases olderv2.1.210 v2.1.212newer
Claude Code v2.1.211

OAuth Refresh Lock: Named Error, Compromise Detection, and Longer Stale Timeout

What

The OAuth token refresh lock now uses a named error class (OAuthRefreshLockContendedError), exposes an isCompromised() predicate and an abort signal, and raises the stale-lock timeout from 10 seconds to 60 seconds with a 5-second update heartbeat.

Details
  • OAuthRefreshLockContendedError is thrown when the lock is contended after max attempts, replacing the previous untyped error.
  • A new onCompromised callback receives a dedicated AbortController signal that is aborted when compromise is detected, allowing in-flight refreshes to be cancelled.
  • The increased stale timeout (60 s) reduces false-positive "lock compromised" events on slow systems.
Evidence

New named error class (search for "OAuthRefreshLockContendedError")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

See this entry in the whole of v2.1.211 →