Zackriya-Solutions/meetily · error

Expected full 200 response, received {}

Error message

Expected full 200 response, received {}

What it means

Thrown by `validate_full_response` when the downloader requested the complete model file but the server replied with a status other than 200 OK. The downloader only accepts a full 200 response for a whole-file download; anything else (404, 403, 503, redirect page, etc.) fails validation before any bytes are consumed.

Source

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

    }

    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<()> {
        if response.status() != reqwest::StatusCode::OK {
            return Err(anyhow!(
                "Expected full 200 response, received {}",
                response.status()
            ));
        }
        if let Some(content_length) = Self::declared_content_length(response)? {
            if content_length != exact_bytes {
                return Err(anyhow!(
                    "Full response declared {} bytes, expected {}",
                    content_length,
                    exact_bytes
                ));
            }
        }
        Ok(())
    }

    fn validate_partial_response(
        response: &reqwest::Response,

View on GitHub (pinned to a2cb62e827)

Solutions

  1. Verify the model name/URL configured for the Parakeet download is correct and the file exists (`curl -I <url>`).
  2. Retry later if the status is 5xx or 429 — the host may be temporarily down or rate-limiting.
  3. Check for authentication/proxy requirements blocking access (403).
  4. Switch to an alternative mirror for the model.
Defensive patterns

Strategy: retry

Validate before calling

let resp = client.head(url).send().await?;
if !resp.status().is_success() {
    anyhow::bail!("model URL unhealthy: {}", resp.status());
}

Try / catch

match result {
    Err(e) if e.to_string().contains("Expected full 200 response") => {
        eprintln!("download endpoint returned non-200; retrying with backoff or mirror");
        retry_with_backoff(3)
    }
    other => other,
}

Prevention

When it happens

Trigger: GET of the full Parakeet model URL returns e.g. 404 (wrong URL/model name), 403 (no access), or 5xx (server error).

Common situations: Typo in the configured model name or mirror URL; the model file was renamed or removed upstream; rate limiting or temporary outage at the host; corporate proxy intercepting the request.

Related errors


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