{"record":{"id":"a4121a1a351bbece","repo":"clash-verge-rev/clash-verge-rev","slug":"failed-to-get-exe-path","errorCode":null,"errorMessage":"failed to get exe path: {}","messagePattern":"failed to get exe path: (.+?)","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src-tauri/src/utils/schtasks.rs","lineNumber":54,"sourceCode":"    }\n\n    const fn xml_run_level(self) -> &'static str {\n        match self {\n            Self::User => \"LeastPrivilege\",\n            Self::Admin => \"HighestAvailable\",\n        }\n    }\n\n    const fn xml_file_name(self) -> &'static str {\n        match self {\n            Self::User => TASK_XML_USER,\n            Self::Admin => TASK_XML_ADMIN,\n        }\n    }\n}\n\nfn get_exe_path() -> Result<PathBuf> {\n    let exe_path = std::env::current_exe().map_err(|e| anyhow!(\"failed to get exe path: {}\", e))?;\n    Ok(exe_path)\n}\n\nfn get_task_user_id() -> Result<String> {\n    let username = std::env::var_os(\"USERNAME\")\n        .or_else(|| std::env::var_os(\"USER\"))\n        .ok_or_else(|| anyhow!(\"failed to get current user name\"))?;\n    let username = username.to_string_lossy();\n    let username = username.trim();\n    if username.is_empty() {\n        return Err(anyhow!(\"current user name is empty\"));\n    }\n\n    let domain = std::env::var_os(\"USERDOMAIN\")\n        .or_else(|| std::env::var_os(\"COMPUTERNAME\"))\n        .map(|value| value.to_string_lossy().to_string());\n\n    if let Some(domain) = domain {","sourceCodeStart":36,"sourceCodeEnd":72,"githubUrl":"https://github.com/clash-verge-rev/clash-verge-rev/blob/5cad0f2799e74b1105e133bcfc2a45f5c1370ef1/src-tauri/src/utils/schtasks.rs#L36-L72","documentation":"Error \"failed to get exe path: {}\" thrown in clash-verge-rev/clash-verge-rev.","triggerScenarios":"Thrown at src-tauri/src/utils/schtasks.rs:54 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"analyzedSha":"5cad0f2799e74b1105e133bcfc2a45f5c1370ef1","analyzedAt":"2026-08-12T03:25:57.699Z","schemaVersion":2},"datasetVersion":"2026-08-12T08:17:17.861Z"}