Zackriya-Solutions/meetily · error

Download failed for {} with status {}

Error message

Download failed for {} with status {}

What it means

While resuming a partial artifact download, the engine accepts 206 (resume), 200 (server ignored Range — restart), or 416 (local copy invalid — restart). Any other status (403, 404, 500, 502, 429, etc.) aborts the artifact download with this error.

Source

Thrown at frontend/src-tauri/src/parakeet_engine/parakeet_engine.rs:949

                        self.set_downloading_status(model_name, progress.percent).await;
                        last_percent = progress.percent;
                        last_report = Instant::now();
                        (response, range_start, true)
                    }
                    reqwest::StatusCode::OK => {
                        Self::validate_full_response(&response, artifact.exact_bytes)?;
                        (response, 0, false)
                    }
                    reqwest::StatusCode::RANGE_NOT_SATISFIABLE => {
                        Self::validate_unsatisfied_response(&response, artifact.exact_bytes)?;
                        let retry = self
                            .send_download_request(&client, &file_url, None, active_download)
                            .await?;
                        Self::validate_full_response(&retry, artifact.exact_bytes)?;
                        (retry, 0, false)
                    }
                    status => {
                        return Err(anyhow!(
                            "Download failed for {} with status {}",
                            artifact.filename,
                            status
                        ));
                    }
                },
                None => match response.status() {
                    reqwest::StatusCode::OK => {
                        Self::validate_full_response(&response, artifact.exact_bytes)?;
                        (response, 0, false)
                    }
                    reqwest::StatusCode::PARTIAL_CONTENT => {
                        Self::validate_partial_response(&response, 0, artifact.exact_bytes)?;
                        (response, 0, false)
                    }
                    status => {
                        return Err(anyhow!(
                            "Download failed for {} with status {}",

View on GitHub (pinned to a2cb62e827)

Solutions

  1. Check the artifact URL in a browser/curl and fix the underlying cause (404: update base_url/manifest; 403: supply auth token or use a public source; 429: wait and retry later).
  2. Retry the download after transient 5xx; check the host's status page if it persists.
  3. Delete the partial file to skip the resume path and issue a plain GET (helps when only Range requests are mishandled).
  4. Switch base_url to the canonical source (https://huggingface.co/...) if the mirror is failing.

Example fix

// before: gated mirror returns 403
let base_url = "https://private-mirror.local/models/parakeet";
// after: public canonical source
let base_url = "https://huggingface.co/facebook/parakeet-tdt-0.6b-v2-int8/resolve/main";
Defensive patterns

Strategy: retry

Validate before calling

// preflight the exact resume URL and expected statuses
curl -s -o /dev/null -w '%{http_code}' -r 1000- <base_url>/<filename>
// acceptable: 206 (resume), 200 (restart), 416 (restart); anything else will abort

Try / catch

// retry with backoff on transient statuses
for delay in [1, 5, 30] {
    match download().await {
        Err(e) if e.to_string().contains("Download failed") && e.to_string().matches("5").any(|_| true)
            => sleep(delay).await,
        other => return other,
    }
}

Prevention

When it happens

Trigger: A Range request (bytes=<local_bytes>-) for an artifact returns a status other than 206/200/416 — e.g. 403 (auth/expired token on the mirror), 404 (file removed/renamed), 429 (rate limited by the host), or 5xx from an overloaded server.

Common situations: Hugging Face rate limiting (429) after many retries; a private/gated repo accessed without a token (403); the artifact renamed upstream (404); CDN or corporate proxy returning 502/503.

Understand the failure class

Background: "API error: {status}" and "HTTP 401/403/404/429/5xx" errors: non-2xx HTTP responses explained — this error's family across 27 libraries.

Related errors


AI-assisted analysis of Zackriya-Solutions/meetily@a2cb62e827 (2026-09-12). Data as JSON: /api/errors/d5a8e00f2bf5e601. Report an issue: GitHub.