warpdotdev/warp · error
Timed out waiting for OAuth authorization
Error message
Timed out waiting for OAuth authorization
What it means
poll_oauth_until_terminal polls the OAuth connect transaction every 5 seconds for up to 120 attempts (10 minutes total). If the status never leaves Pending/InProgress within that window, it gives up with this error. Terminal statuses (Completed/Failed/Expired) return normally — only a permanently pending transaction times out.
Source
Thrown at app/src/ai/agent_sdk/oauth_flow.rs:46
let status = integrations_client
.poll_oauth_connect_status(tx_id.clone())
.await?;
match status {
OauthConnectTxStatus::Completed
| OauthConnectTxStatus::Failed
| OauthConnectTxStatus::Expired => {
return Ok(status);
}
OauthConnectTxStatus::Pending | OauthConnectTxStatus::InProgress => {
if attempt % 5 == 0 {
log::debug!("Still waiting for authorization... ({attempt}/{MAX_ATTEMPTS})",);
}
}
}
}
Err(anyhow!("Timed out waiting for OAuth authorization"))
}
View on GitHub (pinned to e72fd7aacb)
Solutions
- Re-run the setup command — each run generates a fresh transaction and URL
- Complete the browser authorization promptly after the URL is printed
- Make sure you authorize with the intended account (team vs personal context)
- Verify the CLI can reach the server for status polling (network/proxy)
Example fix
# before warp provider setup github --team # user never finishes browser consent -> timeout # after (re-run and complete promptly) warp provider setup github --team # fresh URL; authorize within 10 minutes
Defensive patterns
Strategy: retry
Try / catch
for i in 1 2; do
out=$(warp provider setup "$slug" --team 2>&1) && { echo "$out"; exit 0; }
case "$out" in *'Timed out waiting for OAuth authorization'*) echo 'retrying with a fresh URL' >&2;; *) echo "$out" >&2; exit 1;; esac
done
exit 1 Prevention
- Complete browser authorization immediately after the URL prints
- Authorize in the same browser/profile where you are logged into the intended account
- Treat a 10-minute timeout as 'restart the flow', not 'keep waiting'
When it happens
Trigger: Provider or integration setup where the user opens the connect URL but never completes authorization within 10 minutes, authorizes in a different browser/identity so the transaction stays pending, or closes the tab and walks away.
Common situations: User steps away mid-flow; SSO/email login friction during consent; the transaction expiring server-side while the client keeps seeing Pending; user authorizing with a different account than intended.
Understand the failure class
- Timeouts: ETIMEDOUT, deadlines, and hung requests — what actually expires when a request times out.
Related errors
- GitHub authorization expired. Please try again.
- Error polling OAuth status: {err}
- Unexpected non-terminal OAuth status returned
- Error polling OAuth status: {err}
- Provider '{}' must be setup for either a team or personal ac
AI-assisted analysis of warpdotdev/warp@e72fd7aacb (2026-08-16).
Data as JSON: /api/errors/6add01871021f924.
Report an issue: GitHub.