{"record":{"id":"dcd908b9e59b17e2","repo":"BigPizzaV3/CodexPlusPlus","slug":"error-dcd908","errorCode":null,"errorMessage":"启动管理工具失败：{error}","messagePattern":"启动管理工具失败：(.+?)","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"apps/codex-plus-launcher/src/main.rs","lineNumber":867,"sourceCode":"    async fn open_devtools(&self) -> anyhow::Result<Value> {\n        let debug_port = *self.debug_port.lock().unwrap();\n        let targets = codex_plus_core::cdp::list_targets(debug_port).await?;\n        let target = codex_plus_core::cdp::pick_page_target(&targets)?;\n        let url = codex_plus_core::routes::devtools_url(debug_port, &target.id);\n        open_url(&url)?;\n        Ok(json!({\n            \"status\": \"ok\",\n            \"target_id\": target.id,\n            \"url\": url\n        }))\n    }\n\n    async fn open_manager(&self) -> anyhow::Result<Value> {\n        let target = codex_plus_core::install::spawn_companion(\n            codex_plus_core::install::MANAGER_BINARY,\n            std::iter::empty::<&str>(),\n        )\n        .map_err(|error| anyhow::anyhow!(\"启动管理工具失败：{error}\"))?;\n        Ok(json!({\n            \"status\": \"ok\",\n            \"path\": target\n        }))\n    }\n\n    async fn open_transient_manager(&self) -> anyhow::Result<Value> {\n        let target = codex_plus_core::install::spawn_companion(\n            codex_plus_core::install::MANAGER_BINARY,\n            [\"--transient\"],\n        )\n        .map_err(|error| anyhow::anyhow!(\"启动管理工具失败：{error}\"))?;\n        Ok(json!({\n            \"status\": \"ok\",\n            \"path\": target\n        }))\n    }\n","sourceCodeStart":849,"sourceCodeEnd":885,"githubUrl":"https://github.com/BigPizzaV3/CodexPlusPlus/blob/f2074595a281bc057525c748175c8eb9805b0673/apps/codex-plus-launcher/src/main.rs#L849-L885","documentation":"Wrapped failure thrown on the non-Windows branch of the launcher's open_url/open_manager flow when spawning the system \"open\" command fails, formatted as \"启动管理工具失败：{error}\" with the OS spawn error. The offending input is the manager URL/target plus the environment's ability to launch the opener binary; on macOS/Linux the open invocation itself failed.","triggerScenarios":"Thrown at apps/codex-plus-launcher/src/main.rs:867 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["确认管理器可执行文件路径存在且可执行","以足够权限运行 launcher","检查文件被杀毒软件或策略阻止的情况","查看内嵌 error（NotFound/PermissionDenied 等）针对性处理"],"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"}