DioxusLabs/dioxus · error · anyhow::Error

Download failed with status {}: {url}

Error message

Download failed with status {}: {url}

What it means

download_bytes got an HTTP response but its status was not success (404, 5xx, etc.) for the requested tool URL. The bundler surfaces the status code and URL so the failing download source can be identified.

Source

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

            format!("{:x}", hasher.finalize())
        }
    };

    if computed.to_uppercase() != expected_hash.to_uppercase() {
        bail!("Hash mismatch for {url}: expected {expected_hash}, got {computed}");
    }

    Ok(data)
}

/// Download bytes from a URL using the async reqwest client.
pub(crate) async fn download_bytes(url: &str) -> Result<Vec<u8>> {
    let response = reqwest::get(url)
        .await
        .with_context(|| format!("Failed to download {url}"))?;

    if !response.status().is_success() {
        bail!("Download failed with status {}: {url}", response.status());
    }

    response
        .bytes()
        .await
        .map(|b| b.to_vec())
        .with_context(|| format!("Failed to read response body from {url}"))
}

/// Extract a zip archive to a directory.
fn extract_zip(data: &[u8], dest: &Path) -> Result<()> {
    use std::io::Cursor;

    let cursor = Cursor::new(data);
    let mut archive = zip::ZipArchive::new(cursor).context("Failed to read zip archive")?;

    std::fs::create_dir_all(dest)?;

View on GitHub (pinned to 24f6a829df)

Solutions

  1. The tool download failed with the shown HTTP status. Check network and proxy settings, retry, or install the tool manually.
Defensive patterns

Strategy: retry

When it happens

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