{"record":{"id":"97a226fd799b1cfe","repo":"Zackriya-Solutions/meetily","slug":"expected-full-200-response-received","errorCode":null,"errorMessage":"Expected full 200 response, received {}","messagePattern":"Expected full 200 response, received (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"frontend/src-tauri/src/parakeet_engine/parakeet_engine.rs","lineNumber":728,"sourceCode":"    }\n\n    fn declared_content_length(response: &reqwest::Response) -> Result<Option<u64>> {\n        response\n            .headers()\n            .get(reqwest::header::CONTENT_LENGTH)\n            .map(|value| {\n                value\n                    .to_str()\n                    .map_err(|error| anyhow!(\"Invalid Content-Length header encoding: {}\", error))?\n                    .parse()\n                    .map_err(|error| anyhow!(\"Invalid Content-Length header: {}\", error))\n            })\n            .transpose()\n    }\n\n    fn validate_full_response(response: &reqwest::Response, exact_bytes: u64) -> Result<()> {\n        if response.status() != reqwest::StatusCode::OK {\n            return Err(anyhow!(\n                \"Expected full 200 response, received {}\",\n                response.status()\n            ));\n        }\n        if let Some(content_length) = Self::declared_content_length(response)? {\n            if content_length != exact_bytes {\n                return Err(anyhow!(\n                    \"Full response declared {} bytes, expected {}\",\n                    content_length,\n                    exact_bytes\n                ));\n            }\n        }\n        Ok(())\n    }\n\n    fn validate_partial_response(\n        response: &reqwest::Response,","sourceCodeStart":710,"sourceCodeEnd":746,"githubUrl":"https://github.com/Zackriya-Solutions/meetily/blob/a2cb62e827da7ef59f65064c97233efb2313878e/frontend/src-tauri/src/parakeet_engine/parakeet_engine.rs#L710-L746","documentation":"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.","triggerScenarios":"GET of the full Parakeet model URL returns e.g. 404 (wrong URL/model name), 403 (no access), or 5xx (server error).","commonSituations":"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.","solutions":["Verify the model name/URL configured for the Parakeet download is correct and the file exists (`curl -I <url>`).","Retry later if the status is 5xx or 429 — the host may be temporarily down or rate-limiting.","Check for authentication/proxy requirements blocking access (403).","Switch to an alternative mirror for the model."],"exampleFix":null,"handlingStrategy":"retry","validationCode":"let resp = client.head(url).send().await?;\nif !resp.status().is_success() {\n    anyhow::bail!(\"model URL unhealthy: {}\", resp.status());\n}","typeGuard":null,"tryCatchPattern":"match result {\n    Err(e) if e.to_string().contains(\"Expected full 200 response\") => {\n        eprintln!(\"download endpoint returned non-200; retrying with backoff or mirror\");\n        retry_with_backoff(3)\n    }\n    other => other,\n}","preventionTips":["Verify model names/URLs against the official model list.","Implement retry with exponential backoff for 5xx/429.","Keep a fallback mirror configured."],"tags":["network","http","download"],"backgroundTag":"unexpected-http-status","analyzedSha":"a2cb62e827da7ef59f65064c97233efb2313878e","analyzedAt":"2026-09-12T11:12:14.152Z","contentChangedAt":"2026-09-12T11:12:14.152Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}