{"record":{"id":"8df2a67262b921f7","repo":"Hmbown/CodeWhale","slug":"warning-could-not-open-the-default-browser-erro","errorCode":null,"errorMessage":"warning: could not open the default browser ({error}); open the bootstrap URL above manually","messagePattern":"warning: could not open the default browser \\((.+?)\\); open the bootstrap URL above manually","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/tui/src/runtime_api.rs","lineNumber":985,"sourceCode":"            port = options.port,\n            auth = auth_enabled,\n        );\n    }\n    let serve_result = axum::serve(\n        listener,\n        app.into_make_service_with_connect_info::<SocketAddr>(),\n    )\n    .await\n    .map_err(|e| anyhow!(\"Runtime API server error: {e}\"));\n    scheduler_cancel.cancel();\n    scheduler_handle.abort();\n    serve_result\n}\n\nfn web_launcher_warning(result: Result<()>) -> Option<String> {\n    result.err().map(|error| {\n        format!(\n            \"warning: could not open the default browser ({error}); open the bootstrap URL above manually\"\n        )\n    })\n}\n\nfn fallback_sessions_dir() -> PathBuf {\n    if let Some(home) = codewhale_paths::codewhale_home_override().ok().flatten() {\n        return home.join(\"sessions\");\n    }\n    codewhale_paths::legacy_deepseek_home()\n        .unwrap_or_else(|| PathBuf::from(codewhale_paths::LEGACY_APP_DIR))\n        .join(\"sessions\")\n}\n\npub fn build_router(state: RuntimeApiState) -> Router {\n    let api_routes = Router::new()\n        .route(\n            \"/v1/sessions\",\n            get(list_sessions)","sourceCodeStart":967,"sourceCodeEnd":1003,"githubUrl":"https://github.com/Hmbown/CodeWhale/blob/0c42157ee52f9d55af2b506d71b46249910f77d3/crates/tui/src/runtime_api.rs#L967-L1003","documentation":"web_launcher_warning converts a failure from opening the user's default browser into a user-facing warning string; the runtime API server is already up and the bootstrap URL is printed, so the launch proceeds without automation. This is a graceful degradation, not an error state: xdg-open/open missing or no browser installed are the typical causes.","triggerScenarios":"Thrown at crates/tui/src/runtime_api.rs:985 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Copy the printed bootstrap URL into a browser manually when this warning appears","Ensure a browser or xdg-open equivalent exists on headless/minimal systems","No server action required; the API serves regardless of launcher outcome"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"0c42157ee52f9d55af2b506d71b46249910f77d3","analyzedAt":"2026-08-20T21:50:45.477Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}