tonhowtf/omniget · error · anyhow::Error
nao esta listado em
Error message
{} nao esta listado em {} What it means
Thrown by expected_from_sums_url when the fetched sha256sums text was read fine but neither parse_sha256sums nor parse_single_sha256 finds an entry for the requested asset. The manifest is valid but does not contain a line for this file name.
Solutions
- Download the sums file and grep for the asset name to confirm the exact expected spelling.
- Update the asset name construction (check bin_name/platform/arch handling) to match the upstream filename.
- Point sums_url at the manifest for the same release version as the asset.
- If the artifact was removed upstream, bump to a release that still publishes it.
Example fix
// before
let asset = "ffmpeg";
// after (match upstream naming incl. extension/platform)
let asset = dependencies::bin_name("ffmpeg"); // "ffmpeg.exe" on Windows Defensive patterns
Strategy: validation
Validate before calling
// Before fetching, confirm the manifest actually lists the asset (do it after fetch as a guard)
fn manifest_lists(text: &str, asset: &str) -> bool {
text.lines().any(|l| l.split_whitespace().nth(1).map_or(false, |f| f.trim_start_matches("*") == asset))
} Try / catch
match expected_from_sums_url(&client, &sums_url, &asset).await {
Ok(h) => h,
Err(e) if format!("{e}").contains("nao esta listado") => {
log::error!("asset {asset} missing from manifest; check upstream naming");
Err(e)
}
Err(e) => Err(e),
} Prevention
- Derive asset names from a single source (bin_name + platform/arch) rather than hardcoding strings.
- Keep sums_url version in lockstep with the asset version.
- Test asset-name construction against real upstream manifests in CI.
When it happens
Trigger: expected_from_sums_url(&client, &sums_url, asset) where the asset string does not match any filename listed in the sums file: asset renamed upstream, version mismatch between the manifest URL and the requested asset, or platform-specific filename differences (e.g. .exe suffix, arch in name).
Common situations: Upstream renamed release artifacts; app pinned to a manifest for a different release; requesting a build variant (musl/arm64) not published upstream; Windows target needing 'tool.exe' but manifest lists bare name.
Understand the failure class
Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.
Related errors
- não achei appid para
- não consegui medir o loudness
- cor inválida
- nenhum objeto encontrado — arquivo vazio ou cifrado
- não achei o catálogo (/Root) do documento
AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12).
Data as JSON: /api/errors/dfbbc87549e14924.
Report an issue: GitHub.
Appendix: source
Thrown at src-tauri/omniget-core/src/core/dependencies.rs:104
let response = client
.get(sums_url)
.send()
.await
.map_err(|e| anyhow!("nao foi possivel buscar {}: {}", sums_url, e))?;
if !response.status().is_success() {
return Err(anyhow!(
"nao foi possivel buscar {}: HTTP {}",
sums_url,
response.status()
));
}
let text = response
.text()
.await
.map_err(|e| anyhow!("corpo ilegivel de {}: {}", sums_url, e))?;
parse_sha256sums(&text, asset)
.or_else(|| parse_single_sha256(&text))
.ok_or_else(|| anyhow!("{} nao esta listado em {}", asset, sums_url))
}
}
pub fn bin_name(tool: &str) -> String {
if cfg!(target_os = "windows") {
format!("{}.exe", tool)
} else {
tool.to_string()
}
}
/// Traduz o nome interno da ferramenta para o nome que a UI e o arquivo de
/// overrides usam. `find_tool` recebe "ffmpeg"; a tabela mostra "FFmpeg".
fn override_name(tool: &str) -> &str {
match tool {
"ffmpeg" => "FFmpeg",
"yt-dlp" => "yt-dlp",
other => other,View on GitHub (pinned to 8600b91f42)