warpdotdev/warp · error

GitHub authorization expired. Please try again.

Error message

GitHub authorization expired. Please try again.

What it means

The polled OAuth connect transaction returned OauthConnectTxStatus::Expired (app/src/ai/agent_sdk/agent_config.rs:167): the pending transaction timed out before the user completed authorization in the browser. The app force-terminates with this message.

Source

Thrown at app/src/ai/agent_sdk/agent_config.rs:167

                            ctx.spawn(poll_future, move |runner, poll_result, ctx| {
                                match poll_result {
                                    Ok(OauthConnectTxStatus::Completed) => {
                                        // OAuth completed, retry
                                        runner.auth_then_list(repos, next_attempt, repo_spec, ctx);
                                    }
                                    Ok(OauthConnectTxStatus::Failed) => {
                                        ctx.terminate_app(
                                            TerminationMode::ForceTerminate,
                                            Some(Err(anyhow::anyhow!(
                                                "GitHub authorization failed. Please try again."
                                            ))),
                                        );
                                    }
                                    Ok(OauthConnectTxStatus::Expired) => {
                                        ctx.terminate_app(
                                            TerminationMode::ForceTerminate,
                                            Some(Err(anyhow::anyhow!(
                                                "GitHub authorization expired. Please try again."
                                            ))),
                                        );
                                    }
                                    Ok(_) => {
                                        ctx.terminate_app(
                                            TerminationMode::ForceTerminate,
                                            Some(Err(anyhow::anyhow!(
                                                "Unexpected OAuth status"
                                            ))),
                                        );
                                    }
                                    Err(err) => {
                                        ctx.terminate_app(
                                            TerminationMode::ForceTerminate,
                                            Some(Err(anyhow::anyhow!(
                                                "Error polling OAuth status: {err}"
                                            ))),

View on GitHub (pinned to e72fd7aacb)

Solutions

  1. Re-run the command and complete the authorization promptly after the URL is printed
  2. Log in to GitHub and pass SSO in the browser first, so consent only takes seconds
  3. Check for system clock skew if expirations seem immediate
Defensive patterns

Strategy: retry

Prevention

When it happens

Trigger: Not completing the browser authorization before the transaction's expiry window elapses — e.g. starting the command, leaving the URL unvisited, and returning later.

Common situations: Command left running while the user steps away; slow org SSO login in the browser consuming the window; clock skew shortening perceived validity.

Related errors


AI-assisted analysis of warpdotdev/warp@e72fd7aacb (2026-08-16). Data as JSON: /api/errors/16a8c078d3e02900. Report an issue: GitHub.