From 5bcc80c8f8056cbbb27f01f92e9ee260a58edf65 Mon Sep 17 00:00:00 2001 From: dhruv8sh Date: Thu, 8 Oct 2026 02:03:30 +0530 Subject: [PATCH] Raise Chrome launch timeout for audit browser sessions Chrome startup fell back to chromiumoxide's 20s default, which a cold start on a loaded CI runner can exceed, failing collects_gpt_slot_from_local_fixture with a websocket URL timeout. Set an explicit 60s launch timeout in build_browser_config, shared by both audit collectors. Closes #1255 Signed-off-by: dhruv8sh --- crates/trusted-server-cli/src/commands/audit/browser.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/crates/trusted-server-cli/src/commands/audit/browser.rs b/crates/trusted-server-cli/src/commands/audit/browser.rs index fd79155f0..9f1850ef3 100644 --- a/crates/trusted-server-cli/src/commands/audit/browser.rs +++ b/crates/trusted-server-cli/src/commands/audit/browser.rs @@ -50,6 +50,11 @@ const MAX_EVIDENCE_ENTRIES: usize = 128; const MAX_EVIDENCE_PAYLOAD_BYTES: usize = 1024 * 1024; /// Hard cap on browser teardown so a wedged Chrome cannot hang the audit. const BROWSER_CLOSE_TIMEOUT: Duration = Duration::from_secs(5); +/// Hard cap on Chrome startup until it reports its debugging websocket URL. +/// +/// Replaces chromiumoxide's 20s default, which a cold start on a loaded CI +/// runner or a slow operator machine can exceed. +const BROWSER_LAUNCH_TIMEOUT: Duration = Duration::from_secs(60); /// Page-settle timing thresholds. #[derive(Debug, Clone, Copy)] @@ -151,7 +156,8 @@ pub(crate) fn build_browser_config( ) -> Result { let mut builder = BrowserConfig::builder() .chrome_executable(options.chrome) - .user_data_dir(options.profile_dir); + .user_data_dir(options.profile_dir) + .launch_timeout(BROWSER_LAUNCH_TIMEOUT); if !options.accept_invalid_certs { builder = builder.respect_https_errors(); }