{"name":"tengu_oauth_error","slug":"tengu-oauth-error","family":"flag","title":"Feature flags","noun":"feature flag","description":"An analytics event, not a feature flag. Claude Code logs it when an OAuth login flow fails: in the login flow with `account_on_hold: true` when the account is on hold, otherwise with error details and `ssl_error` (whether the failure was recognised as an SSL error), and in the `install-github-app` OAuth flow with error details.","description_source":"code","described_by":{"bundle":"2.1.286","author":"claude-opus-5-5"},"presence":{"first_seen":null,"removed_in":null,"in_current_build":false,"newest_mined":"2.1.308","builds":0,"mined_builds":149,"first_cited":null},"aliases":[],"entries":[],"entries_total":0,"docs":[],"docs_total":0,"gates":[],"related":[{"name":"tengu_oauth_401_recovered_from_disk","slug":"tengu-oauth-401-recovered-from-disk","description":"After a token refresh, requests use your current account rather than the previous one."},{"name":"tengu_oauth_401_recovered_from_keychain","slug":"tengu-oauth-401-recovered-from-keychain","description":"An analytics event, not a feature flag. Claude Code logs it while handling an OAuth `401` when the stored credentials, read again, already hold an access token different from the one that was rejected, so that token is used without a refresh."},{"name":"tengu_oauth_console_api_key_selected","slug":"tengu-oauth-console-api-key-selected","description":"\/login now offers signing in to your Console account instead of only creating an API key."},{"name":"tengu_oauth_console_token_selected","slug":"tengu-oauth-console-token-selected","description":"\/login now offers signing in to your Console account instead of only creating an API key."},{"name":"tengu_oauth_refresh_invalid_scope_fallback","slug":"tengu-oauth-refresh-invalid-scope-fallback","description":"If a server rejects the new expanded OAuth scope request, Claude Code retries once with the old scopes"},{"name":"tengu_oauth_refresh_token_account_on_hold","slug":"tengu-oauth-refresh-token-account-on-hold","description":"OAuth token refresh now recognizes an 'account on hold' response as its own outcome"},{"name":"tengu_oauth_refresh_token_cleared_invalid_grant","slug":"tengu-oauth-refresh-token-cleared-invalid-grant","description":null},{"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"}],"url":"https:\/\/changelogs.core-directive.com\/reference\/flag\/tengu-oauth-error","family_url":"https:\/\/changelogs.core-directive.com\/reference\/flag.json"}