DioxusLabs/dioxus · error · anyhow::Error

NSIS not found and automatic downloads are disabled. Install

Error message

NSIS not found and automatic downloads are disabled. Install NSIS manually.

What it means

ensure_nsis could not find makensis in the tools cache and the CLI is configured to never download tools. NSIS is required for Windows installers, so the bundler bails instructing a manual install rather than fetching it.

Source

Thrown at packages/cli/src/bundler/tools.rs:121

            ))
        }
    }
}

async fn ensure_nsis(tools_dir: &Path) -> Result<PathBuf> {
    let nsis_dir = tools_dir.join("nsis-3.11");
    let makensis = if cfg!(target_os = "windows") {
        nsis_dir.join("makensis.exe")
    } else {
        nsis_dir.join("makensis")
    };

    if makensis.exists() {
        return Ok(nsis_dir);
    }

    if CliSettings::prefer_no_downloads() {
        bail!("NSIS not found and automatic downloads are disabled. Install NSIS manually.");
    }

    tracing::info!("Downloading NSIS...");

    let data = download_and_verify(NSIS_URL, NSIS_SHA1, HashAlgo::Sha1).await?;
    extract_zip(&data, tools_dir)?;

    if !makensis.exists() {
        bail!(
            "NSIS extraction succeeded but makensis not found at {}",
            makensis.display()
        );
    }

    #[cfg(unix)]
    let _ = std::fs::set_permissions(&makensis, std::fs::Permissions::from_mode(0o755));

    Ok(nsis_dir)

View on GitHub (pinned to 24f6a829df)

Solutions

  1. Install NSIS manually, or enable automatic tool downloads in the dx settings.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at packages/cli/src/bundler/tools.rs:121 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/de45c8cd866c056c. Report an issue: GitHub.