{"record":{"id":"c9794b81c74b31ba","repo":"tonhowtf/omniget","slug":"corpo-ilegivel-de","errorCode":null,"errorMessage":"corpo ilegivel de {}: {}","messagePattern":"corpo ilegivel de (.+?): (.+?)","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src-tauri/omniget-core/src/core/dependencies.rs","lineNumber":101,"sourceCode":"        sums_url: &str,\n        asset: &str,\n    ) -> anyhow::Result<String> {\n        let response = client\n            .get(sums_url)\n            .send()\n            .await\n            .map_err(|e| anyhow!(\"nao foi possivel buscar {}: {}\", sums_url, e))?;\n        if !response.status().is_success() {\n            return Err(anyhow!(\n                \"nao foi possivel buscar {}: HTTP {}\",\n                sums_url,\n                response.status()\n            ));\n        }\n        let text = response\n            .text()\n            .await\n            .map_err(|e| anyhow!(\"corpo ilegivel de {}: {}\", sums_url, e))?;\n        parse_sha256sums(&text, asset)\n            .or_else(|| parse_single_sha256(&text))\n            .ok_or_else(|| anyhow!(\"{} nao esta listado em {}\", asset, sums_url))\n    }\n}\n\npub fn bin_name(tool: &str) -> String {\n    if cfg!(target_os = \"windows\") {\n        format!(\"{}.exe\", tool)\n    } else {\n        tool.to_string()\n    }\n}\n\n/// Traduz o nome interno da ferramenta para o nome que a UI e o arquivo de\n/// overrides usam. `find_tool` recebe \"ffmpeg\"; a tabela mostra \"FFmpeg\".\nfn override_name(tool: &str) -> &str {\n    match tool {","sourceCodeStart":83,"sourceCodeEnd":119,"githubUrl":"https://github.com/tonhowtf/omniget/blob/8600b91f4246848bac346874daa9e61c1fc5677a/src-tauri/omniget-core/src/core/dependencies.rs#L83-L119","documentation":"Thrown by expected_from_sums_url when the response body cannot be read as UTF-8 text (response.text() fails). The HTTP request succeeded but the payload is not decodable text, so the sha256sums manifest cannot be parsed.","triggerScenarios":"The URL returned binary content (e.g. an HTML error page served with 200, a compressed body reqwest could not decode, or invalid UTF-8 bytes) causing response.text().await to return Err.","commonSituations":"Reverse proxy or captive portal injecting an HTML interstitial; misconfigured server sending gzip without proper content headers; corrupted CDN cache entry serving binary garbage.","solutions":["curl the sums_url and inspect the raw body for HTML or binary content.","Check for a proxy/captive portal intercepting the request and bypass it.","Retry after clearing any intermediary cache; if persistent, switch to a mirror URL.","If the upstream genuinely serves non-UTF-8, fix or replace the manifest source."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"// Treat body-read failure as corrupt/untrusted manifest: retry or use mirror\nmatch expected_from_sums_url(&client, &sums_url, asset).await {\n    Ok(h) => h,\n    Err(e) if format!(\"{e}\").starts_with(\"corpo ilegivel\") => fetch_from_mirror().await,\n    Err(e) => return Err(e),\n}","preventionTips":["Bypass intercepting proxies/captive portals for update traffic.","Prefer HTTPS endpoints under your control or pinned mirrors.","Log the URL and error so non-UTF-8 payloads are quickly identified."],"tags":["http","encoding","rust","response-body"],"backgroundTag":"file-read-failed","analyzedSha":"8600b91f4246848bac346874daa9e61c1fc5677a","analyzedAt":"2026-09-12T14:29:19.317Z","contentChangedAt":"2026-09-12T14:29:19.317Z","schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}