Zackriya-Solutions/meetily · error

Failed to start download for

Error message

Failed to start download for {}: {}

What it means

Returned by download_model_detailed when the initial client.get(file_url).send() fails at the transport level (no HTTP status was received). file_url points at huggingface.co/istupakov/parakeet-tdt-0.6b-v2-onnx/resolve/main/<file> for v2 models or meetily.towardsgeneralintelligence.com/models/parakeet-tdt-0.6b-v3-onnx/<file> for v3, so this is DNS resolution, connection, TLS, or proxy failure for those hosts.

Solutions

  1. Verify basic connectivity to the exact host: curl -I https://huggingface.co/... or https://meetily.towardsgeneralintelligence.com/... from the same machine
  2. Check VPN/proxy/firewall settings and whitelist the download host
  3. Fix DNS or switch networks, then retry - the engine removes the active-download entry and resumes partial files on the next attempt
  4. If HuggingFace is unreachable long-term, prefer the v3 model which is served from the meetily mirror instead
Defensive patterns

Strategy: retry

Validate before calling

// Cheap preflight before a long download: can we reach the host at all?
// (v2 -> huggingface.co, v3 -> meetily.towardsgeneralintelligence.com)
let host = if name.contains("-v2-") { "https://huggingface.co" } else { "https://meetily.towardsgeneralintelligence.com" };
if reqwest::get(host).await.is_err() {
    anyhow::bail!("cannot reach {host} - check network/proxy before downloading");
}

Try / catch

// Retry with backoff - transport failures are usually transient; the engine resumes partial files
let mut attempt = 0;
loop {
    match engine.download_model(name, None).await {
        Ok(()) => break,
        Err(e) if e.to_string().contains("Failed to start download") && attempt < 3 => {
            attempt += 1;
            tokio::time::sleep(std::time::Duration::from_secs(5 * attempt as u64)).await;
        }
        Err(e) => return Err(e),
    }
}

Prevention

When it happens

Trigger: Machine offline or DNS cannot resolve huggingface.co / meetily.towardsgeneralintelligence.com; firewall or corporate proxy blocks the host; TLS interception with an untrusted CA breaks the handshake; the 30-second connect_timeout expires on a saturated link.

Common situations: Airplane mode/VPN dropped mid-flow; corporate egress filtering blocks file-hosting/CDN domains; captive portal intercepting the first request; regional network issues reaching HuggingFace CDN.

Related errors


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

Appendix: source

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


    async fn send_download_request(
        &self,
        client: &reqwest::Client,
        file_url: &str,
        range_start: Option<u64>,
        active_download: &ActiveDownload,
    ) -> Result<reqwest::Response> {
        let mut request = client.get(file_url);
        if let Some(range_start) = range_start {
            request = request.header(reqwest::header::RANGE, format!("bytes={range_start}-"));
        }

        tokio::select! {
            biased;
            _ = active_download.cancellation.cancelled() => Err(DownloadCancelled.into()),
            response = request.send() => response
                .map_err(|error| anyhow!("Failed to start download for {}: {}", file_url, error)),
        }
    }

    fn declared_content_length(response: &reqwest::Response) -> Result<Option<u64>> {
        response
            .headers()
            .get(reqwest::header::CONTENT_LENGTH)
            .map(|value| {
                value
                    .to_str()
                    .map_err(|error| anyhow!("Invalid Content-Length header encoding: {}", error))?
                    .parse()
                    .map_err(|error| anyhow!("Invalid Content-Length header: {}", error))
            })
            .transpose()
    }

    fn validate_full_response(response: &reqwest::Response, exact_bytes: u64) -> Result<()> {

View on GitHub (pinned to a2cb62e827)