{"record":{"id":"a3c2a3b2a5dec69c","repo":"Kuberwastaken/claurst","slug":"authentication-timed-out-after-120-seconds","errorCode":null,"errorMessage":"Authentication timed out after 120 seconds","messagePattern":"Authentication timed out after 120 seconds","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src-rust/crates/cli/src/oauth_flow.rs","lineNumber":542,"sourceCode":"    });\r\n\r\n    tokio::select! {\r\n        result = cb_rx => {\r\n            // Loopback callback: code came clean from the query string and was\r\n            // authorized against the localhost redirect_uri.\r\n            result\r\n                .unwrap_or_else(|_| Err(anyhow::anyhow!(\"Callback server dropped\")))\r\n                .map(|code| (code, false))\r\n        }\r\n        code = paste_rx => {\r\n            // Manual paste: the page hands back \"<code>#<state>\"; keep only the\r\n            // code part. This path authorized against MANUAL_REDIRECT_URL.\r\n            let raw = code.map_err(|_| anyhow::anyhow!(\"Stdin closed unexpectedly\"))?;\r\n            let code_only = raw.split('#').next().unwrap_or(&raw).trim().to_string();\r\n            Ok((code_only, true))\r\n        }\r\n        _ = tokio::time::sleep(Duration::from_secs(120)) => {\r\n            bail!(\"Authentication timed out after 120 seconds\")\r\n        }\r\n    }\r\n}\r\n","sourceCodeStart":524,"sourceCodeEnd":546,"githubUrl":"https://github.com/Kuberwastaken/claurst/blob/b0637c97ec34144387cbf2f74f65df6d16a6cef1/src-rust/crates/cli/src/oauth_flow.rs#L524-L546","documentation":"The OAuth login flow waited 120 seconds without receiving an authorization code, via either the loopback callback or the manual paste channel. The tokio::select! deadline expired — the user never completed (or the browser never delivered) the consent step in time.","triggerScenarios":"Thrown at src-rust/crates/cli/src/oauth_flow.rs:542 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Restart the login and complete the browser consent promptly within the 2-minute window","Use the manual paste fallback: copy the code from the success page into the TUI","Check that the browser can reach 127.0.0.1 for the loopback redirect (no proxy blocking)"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"b0637c97ec34144387cbf2f74f65df6d16a6cef1","analyzedAt":"2026-09-10T00:24:58.650Z","contentChangedAt":"2026-09-10T00:24:58.650Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}