{"record":{"id":"9265fa5ef2e1ba1a","repo":"DioxusLabs/dioxus","slug":"light-exe-completed-but-msi-not-found-at","errorCode":null,"errorMessage":"light.exe completed but MSI not found at {}","messagePattern":"light\\.exe completed but MSI not found at (.+?)","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"packages/cli/src/bundler/windows.rs","lineNumber":341,"sourceCode":"            .with_context(|| format!(\"Failed to run light.exe at {}\", light.display()))?;\n\n        if !light_output.status.success() {\n            let stderr = String::from_utf8_lossy(&light_output.stderr);\n            let stdout = String::from_utf8_lossy(&light_output.stdout);\n            bail!(\n                \"light.exe failed (exit code {:?}):\\nstdout: {}\\nstderr: {}\",\n                light_output.status.code(),\n                stdout,\n                stderr\n            );\n        }\n\n        if can_sign_windows(&windows_settings) {\n            self.try_sign_windows(&output_path).await?;\n        }\n\n        if !output_path.exists() {\n            bail!(\n                \"light.exe completed but MSI not found at {}\",\n                output_path.display()\n            );\n        }\n\n        tracing::info!(\"MSI installer created: {}\", output_path.display());\n        Ok(vec![output_path])\n    }\n\n    /// Build a Windows installer executable using NSIS.\n    ///\n    /// NSIS packaging follows the same broad staging pattern as MSI bundling, but the\n    /// installer behavior is expressed through a generated `.nsi` script rather than\n    /// WiX XML.\n    ///\n    /// The method performs these steps:\n    /// 1. Resolve the `makensis` binary prepared during tool resolution.\n    /// 2. Create an `_staging` directory containing the main executable, copied","sourceCodeStart":323,"sourceCodeEnd":359,"githubUrl":"https://github.com/DioxusLabs/dioxus/blob/24f6a829df0dfa203961a98ea4cae21c2ff27e28/packages/cli/src/bundler/windows.rs#L323-L359","documentation":"Post-condition guard in bundle_windows_msi: light.exe reported success (exit code 0), but the expected MSI file is not present at the computed output path. This means the linker's success was misleading — the output was written elsewhere, named differently, or was not produced — and the input at fault is the expected output_path versus what light actually emitted.","triggerScenarios":"Thrown at packages/cli/src/bundler/windows.rs:341 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["light.exe finished but no MSI exists at the expected path. Check light.exe output for the real output path or errors."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"24f6a829df0dfa203961a98ea4cae21c2ff27e28","analyzedAt":"2026-08-23T07:10:14.078Z","contentChangedAt":"2026-08-23T07:10:14.078Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}