{"name":"tengu_oauth_token_refresh_locked_read_failed","slug":"tengu-oauth-token-refresh-locked-read-failed","family":"flag","title":"Feature flags","noun":"feature flag","description":"Login token refresh retries saving and stops cleanly on dead tokens instead of failing quietly.","description_source":"entry","described_by":{"version":"2.1.223","anchor":"oauth-token-refresh-shared-save-path-dead-token-handling-and"},"presence":{"first_seen":null,"removed_in":null,"in_current_build":false,"newest_mined":"2.1.308","builds":0,"mined_builds":149,"first_cited":{"version":"2.1.223","released_at":"2026-08-05 22:51:13","spans":1}},"aliases":[],"entries":[{"version":"2.1.223","anchor":"oauth-token-refresh-shared-save-path-dead-token-handling-and","heading":"OAuth token refresh: shared save path, dead-token handling and strict credential reads","line":"Login token refresh retries saving and stops cleanly on dead tokens instead of failing quietly.","released_at":"2026-08-05 22:51:13","reason":"gate cited by this entry, found in this entry's text"}],"entries_total":1,"docs":[],"docs_total":0,"gates":[],"related":[{"name":"tengu_oauth_token_refresh_failure","slug":"tengu-oauth-token-refresh-failure","description":"Login token refresh failures are now labelled with the action that triggered them."},{"name":"tengu_oauth_token_refresh_lock_acquired","slug":"tengu-oauth-token-refresh-lock-acquired","description":"OAuth token refresh lock now reports its \"acquired\" event later, closer to the actual read check"},{"name":"tengu_oauth_token_refresh_lock_acquiring","slug":"tengu-oauth-token-refresh-lock-acquiring","description":"OAuth token refresh lock now reports its \"acquired\" event later, closer to the actual read check"},{"name":"tengu_oauth_token_refresh_lock_release_error","slug":"tengu-oauth-token-refresh-lock-release-error","description":"A telemetry failure can no longer block releasing the OAuth token refresh lock"},{"name":"tengu_oauth_token_refresh_lock_releasing","slug":"tengu-oauth-token-refresh-lock-releasing","description":"A telemetry failure can no longer block releasing the OAuth token refresh lock"},{"name":"tengu_oauth_token_refresh_race_resolved","slug":"tengu-oauth-token-refresh-race-resolved","description":"When another process refreshes your login, the session re-reads who you are signed in as."},{"name":"tengu_oauth_token_refresh_starting","slug":"tengu-oauth-token-refresh-starting","description":"An analytics event, not a feature flag. Claude Code logs it, with no fields, just before it sends an OAuth token refresh request, after it has checked that a refresh token exists, the token still needs refreshing, the refresh token is not known dead or on hold, and the refresh lock is not compromised."},{"name":"tengu_oauth_token_refresh_success","slug":"tengu-oauth-token-refresh-success","description":"Token refresh now also asks for the user:plugins permission scope and logs whether it was granted"}],"url":"https:\/\/changelogs.core-directive.com\/reference\/flag\/tengu-oauth-token-refresh-locked-read-failed","family_url":"https:\/\/changelogs.core-directive.com\/reference\/flag.json"}