Sweep 19 Sep 2026 · 02:36Z Build v2.1.278 500 read Stable v2.1.267 Latest v2.1.278 Next v2.1.278 Feeds RSS JSON llms.txt Unofficial
Claude Code v2.1.274 ·

Inference token refresh rewritten with backoff, TTL tracking and refresh-on-error

Self-hosted runner's inference token refresh now uses jittered backoff, tracks token TTL, and refreshes immediately on a 401/403 instead of waiting

TierUnder the hoodhow much it should matter to you
Useful3my rating, 1 to 5
Signal2worth watching, 1 to 5
AreaSelf-Hosted Runnerwhat it touches
KindImprovementsin v2.1.274,
Group of 2 Under the hood

Self-hosted runner's inference token refresh now uses jittered backoff, tracks token TTL, and refreshes immediately on a 401/403 instead of waiting

What

  • The self-hosted runner's inference-token auto-refresh logic was rewritten. It now tracks the token's time-to-live (ttlMs, 30 minutes by default), and retries failed refreshes with exponential backoff plus jitter (a random delay) instead of a fixed interval.
  • Tokens nearing expiry get a separate, shorter retry window (expiredRetryMs).
  • A new error classifier distinguishes errors worth retrying from ones that aren't: a new RemoteConfigWithoutInferenceAuthError, or an HTTP 401/403, is treated as non-network and not retried early.
  • A new onResultApiError callback lets a 401/403 returned by the model API during a child session's turn trigger an immediate, out-of-band token refresh (refreshNow()) instead of waiting for the next scheduled refresh.

Why This makes token refresh more resilient to transient failures while reacting immediately to real auth failures, so a self-hosted runner recovers faster from an expired or rejected inference token instead of a child session stalling until the next scheduled refresh.

See this entry in the whole of v2.1.274 →