Zackriya-Solutions/meetily · error

Download failed for {} with status: {}

Error message

Download failed for {} with status: {}

What it means

Returned by download_model_detailed when the FIRST GET for a file returns a non-success HTTP status and it is not the resumable-partial case: the tuple match falls into the 'other errors' arm, removes the model from active_downloads, and fails with the reqwest StatusCode. This covers server-side rejections of the initial request for encoder/decoder/vocab files.

Source

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

                    // Retry without Range header
                    log::info!("Retrying {} without resume", filename);
                    response = client.get(&file_url).send().await
                        .map_err(|e| anyhow!("Retry failed for {}: {}", filename, e))?;

                    if !response.status().is_success() {
                        let mut active = self.active_downloads.write().await;
                        active.remove(model_name);
                        return Err(anyhow!("Retry failed for {} with status: {}", filename, response.status()));
                    }

                    (response.content_length().unwrap_or(0), false)
                }
            } else {
                // Other errors
                let mut active = self.active_downloads.write().await;
                active.remove(model_name);
                return Err(anyhow!("Download failed for {} with status: {}", filename, response.status()));
            };

            // Open file for writing (append if resuming, create new if not)
            let file = if resuming {
                fs::OpenOptions::new()
                    .append(true)
                    .open(&file_path)
                    .await
                    .map_err(|e| anyhow!("Failed to open file for resume {}: {}", filename, e))?
            } else {
                fs::File::create(&file_path)
                    .await
                    .map_err(|e| anyhow!("Failed to create file {}: {}", filename, e))?
            };

            // Use buffered writer for better I/O performance (8MB buffer)
            let mut writer = BufWriter::with_capacity(8 * 1024 * 1024, file);

View on GitHub (pinned to 0281737d87)

Solutions

  1. Check which file failed - the '{}' filename plus curl -I on the full URL identifies a moved/missing file vs a server problem
  2. On 429 or 5xx: wait and retry; the engine cleans its active-download state and resumes
  3. On 404/410 persistent: switch to the other catalog model (v2 vs v3 use different hosts) or update the app for corrected URLs
  4. On 403: verify no proxy/VPN is stripping headers and that the network allows the host
Defensive patterns

Strategy: retry

Validate before calling

// Optional preflight HEAD request for the first file of the model
let base = if name.contains("-v2-") {
    "https://huggingface.co/istupakov/parakeet-tdt-0.6b-v2-onnx/resolve/main"
} else {
    "https://meetily.towardsgeneralintelligence.com/models/parakeet-tdt-0.6b-v3-onnx"
};
let resp = reqwest::Client::new().head(format!("{base}/vocab.txt")).send().await?;
anyhow::ensure!(resp.status().is_success(), "preflight failed: {}", resp.status());

Try / catch

match engine.download_model(name, None).await {
    Err(e) if e.to_string().contains("Download failed for") && e.to_string().contains("status") => {
        let msg = e.to_string();
        if msg.contains("429") || msg.contains("500") || msg.contains("502") || msg.contains("503") {
            // server-side: retry later with backoff; partial files resume
        } else {
            // 403/404: host blocks the request or file moved - switch model/host, do not retry
        }
        return Err(e);
    }
    other => other?,
}

Prevention

When it happens

Trigger: 404 because a file like encoder-model.int8.onnx is absent at the versioned base URL (v2 vs v3 layout mismatch); 403 from HuggingFace hotlink/auth policies or geo-blocks; 429 rate limiting right at download start; 5xx from meetily.towardsgeneralintelligence.com during an outage.

Common situations: Upstream HuggingFace repo restructured after an app release; the meetily mirror temporarily down; aggressive rate limits after several aborted downloads; region blocked from the CDN.

Related errors


AI-assisted analysis of Zackriya-Solutions/meetily@0281737d87 (2026-08-16). Data as JSON: /api/errors/67b57ea73f6f8efe. Report an issue: GitHub.