{"record":{"id":"fecd677155a89081","repo":"Zackriya-Solutions/meetily","slug":"partial-response-has-an-unsatisfied-content-range","errorCode":null,"errorMessage":"Partial response has an unsatisfied Content-Range","messagePattern":"Partial response has an unsatisfied Content-Range","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"frontend/src-tauri/src/parakeet_engine/parakeet_engine.rs","lineNumber":761,"sourceCode":"    }\n\n    fn validate_partial_response(\n        response: &reqwest::Response,\n        expected_start: u64,\n        exact_bytes: u64,\n    ) -> Result<()> {\n        if response.status() != reqwest::StatusCode::PARTIAL_CONTENT {\n            return Err(anyhow!(\n                \"Expected partial 206 response, received {}\",\n                response.status()\n            ));\n        }\n        let content_range = response\n            .headers()\n            .get(reqwest::header::CONTENT_RANGE)\n            .ok_or_else(|| anyhow!(\"Partial response is missing Content-Range\"))?;\n        let ContentRange::Range { start, end, total } = parse_content_range(content_range)? else {\n            return Err(anyhow!(\"Partial response has an unsatisfied Content-Range\"));\n        };\n        if start != expected_start || end != exact_bytes - 1 || total != exact_bytes {\n            return Err(anyhow!(\n                \"Partial response range {}-{} / {} does not match {}-{} / {}\",\n                start,\n                end,\n                total,\n                expected_start,\n                exact_bytes - 1,\n                exact_bytes\n            ));\n        }\n        let expected_length = end\n            .checked_sub(start)\n            .and_then(|length| length.checked_add(1))\n            .ok_or_else(|| anyhow!(\"Partial response range length overflow\"))?;\n        if let Some(content_length) = Self::declared_content_length(response)? {\n            if content_length != expected_length {","sourceCodeStart":743,"sourceCodeEnd":779,"githubUrl":"https://github.com/Zackriya-Solutions/meetily/blob/a2cb62e827da7ef59f65064c97233efb2313878e/frontend/src-tauri/src/parakeet_engine/parakeet_engine.rs#L743-L779","documentation":"Thrown by `validate_partial_response` when the Content-Range header cannot be parsed as a satisfied range (e.g. it says `bytes */1234` meaning the range was NOT satisfied, or the header is malformed). The `let ... else` destructuring of `parse_content_range` fails, so the downloader refuses the response.","triggerScenarios":"206/416-class response whose Content-Range is `bytes */<total>` (unsatisfied range), or a malformed Content-Range value the parser cannot decompose into start/end/total.","commonSituations":"Server signaling that the requested offset is no longer valid because the file changed; custom servers emitting a syntactically invalid Content-Range; middleboxes truncating the header.","solutions":["Delete the partial file and restart the download from byte 0 — an unsatisfied range means the server cannot serve the requested offset.","Verify the remote file hasn't changed (size/version) since the partial download started.","Fix or replace the mirror server so it emits valid `Content-Range: bytes start-end/total` headers."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":"let cr = resp.headers().get(\"content-range\").and_then(|v| v.to_str().ok());\nlet satisfied = cr.map(|c| c.starts_with(\"bytes \") && !c.contains(\"*/\")).unwrap_or(false);\nif !satisfied { eprintln!(\"range unsatisfied or malformed ({:?}); restart download\", cr); }","typeGuard":null,"tryCatchPattern":"match result {\n    Err(e) if e.to_string().contains(\"unsatisfied Content-Range\") => delete_partial_and_restart(),\n    other => other,\n}","preventionTips":["Verify the remote file hasn't changed before resuming (compare size/etag).","Re-download from scratch after model version bumps.","Fix mirrors that emit malformed Content-Range values."],"tags":["network","http","http-headers","download"],"backgroundTag":"unexpected-response-shape","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"}