{"record":{"id":"bd5946e51e7a0d88","repo":"BigPizzaV3/CodexPlusPlus","slug":"error-bd5946","errorCode":null,"errorMessage":"启动系统浏览器失败：{error}","messagePattern":"启动系统浏览器失败：(.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"apps/codex-plus-manager/src-tauri/src/commands.rs","lineNumber":5072,"sourceCode":"            .get(\"ads\")\n            .and_then(Value::as_array)\n            .cloned()\n            .unwrap_or_default(),\n    }\n}\n\nfn open_url(url: &str) -> anyhow::Result<()> {\n    #[cfg(windows)]\n    {\n        codex_plus_core::windows_open_url(url)\n    }\n    #[cfg(not(windows))]\n    {\n        std::process::Command::new(\"open\")\n            .arg(url)\n            .spawn()\n            .map(|_| ())\n            .map_err(|error| anyhow::anyhow!(\"启动系统浏览器失败：{error}\"))\n    }\n}\n\nfn settings_payload(message: &str, failure_context: &str) -> CommandResult<SettingsPayload> {\n    match settings_payload_value() {\n        Ok(payload) => ok(message, payload),\n        Err((error, payload)) => failed(&format!(\"{failure_context}：{error}\"), payload),\n    }\n}\n\nfn settings_payload_value() -> Result<SettingsPayload, (anyhow::Error, SettingsPayload)> {\n    let store = SettingsStore::default();\n    let settings_path = codex_plus_core::paths::default_settings_path()\n        .to_string_lossy()\n        .to_string();\n    match store.load() {\n        Ok(settings) => Ok(SettingsPayload {\n            settings,","sourceCodeStart":5054,"sourceCodeEnd":5090,"githubUrl":"https://github.com/BigPizzaV3/CodexPlusPlus/blob/f2074595a281bc057525c748175c8eb9805b0673/apps/codex-plus-manager/src-tauri/src/commands.rs#L5054-L5090","documentation":"Wrapped failure thrown by the manager's open_url helper on non-Windows platforms: spawning the system \"open\" command for the URL failed, formatted as \"启动系统浏览器失败：{error}\" with the OS spawn error. The offending inputs are the URL and the environment's opener availability; Windows uses codex_plus_core::windows_open_url instead and reports different errors.","triggerScenarios":"Thrown at apps/codex-plus-manager/src-tauri/src/commands.rs:5072 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["确认系统存在 open（macOS）命令；Linux 上改用 xdg-open","检查 PATH 环境变量","按平台分派正确的打开命令","失败时提示用户手动复制 URL"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"f2074595a281bc057525c748175c8eb9805b0673","analyzedAt":"2026-08-23T12:52:24.489Z","contentChangedAt":"2026-08-23T12:52:24.489Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}