DioxusLabs/dioxus · error · anyhow::Error
makensis failed (exit code {:?}): stdout: {} stderr: {}
Error message
makensis failed (exit code {:?}):
stdout: {}
stderr: {} What it means
Raised in bundle_windows_nsis after running makensis on the generated .nsi installer script: the process completed but returned a non-zero exit status. This is an external tool failure — the generated NSIS script or local NSIS setup caused the installer build to fail — and makensis's captured stdout/stderr are surfaced in the message.
Source
Thrown at packages/cli/src/bundler/windows.rs:593
let nsi_path = output_dir.join(format!("{product_name}.nsi"));
std::fs::write(&nsi_path, &nsi_content).context("Failed to write NSIS script")?;
tracing::info!("Running makensis to build NSIS installer...");
let mut cmd = Command::new(&makensis);
cmd.arg("-NOCD");
cmd.arg(&nsi_path);
tracing::debug!("makensis command: {:?}", cmd);
let output = cmd
.output()
.await
.with_context(|| format!("Failed to run makensis at {}", makensis.display()))?;
if !output.status.success() {
let stderr = String::from_utf8_lossy(&output.stderr);
let stdout = String::from_utf8_lossy(&output.stdout);
bail!(
"makensis failed (exit code {:?}):\nstdout: {}\nstderr: {}",
output.status.code(),
stdout,
stderr
);
}
if can_sign_windows(&windows_settings) {
self.try_sign_windows(&output_path).await?;
}
if !output_path.exists() {
bail!(
"makensis completed but installer not found at {}",
output_path.display()
);
}
View on GitHub (pinned to 24f6a829df)
Solutions
- makensis failed. Read the printed stdout and stderr and fix the NSIS script error it reports.
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at packages/cli/src/bundler/windows.rs:593 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of DioxusLabs/dioxus@24f6a829df (2026-08-23).
Data as JSON: /api/errors/0b8689680dba5b40.
Report an issue: GitHub.