tonhowtf/omniget · error
não achei appid para: {} — cole o link da loja ou o número
Error message
não achei appid para: {} — cole o link da loja ou o número What it means
run in protondb.rs bails with this message when none of the supplied inputs could be resolved to a Steam appid. resolve_targets returns (targets, unresolved); if targets is empty but unresolved is non-empty, every input the user gave was unrecognizable, and the error lists them joined by comma. Message in Portuguese: 'could not find appid for: {} — paste the store link or the number'.
Solutions
- Replace each listed input with its numeric Steam appid (e.g. '570')
- Paste the full store page URL (https://store.steampowered.com/app/<appid>/...) instead of a name or short link
- Check for typos/extra characters in the inputs and trim whitespace
- Provide at least one resolvable input, or set scan_library = true
Example fix
// before
run(ProtonOptions { inputs: vec!["Elden Ring".into()], .. }).await?;
// after
run(ProtonOptions { inputs: vec!["https://store.steampowered.com/app/1245620/ELDEN_RING/".into()], .. }).await?; Defensive patterns
Strategy: validation
Validate before calling
fn looks_like_appid_or_store_link(input: &str) -> bool {
let t = input.trim();
(!t.is_empty() && t.chars().all(|c| c.is_ascii_digit()))
|| t.contains("store.steampowered.com/app/")
} Type guard
fn is_resolvable_input(s: &str) -> bool {
let t = s.trim();
(!t.is_empty() && t.chars().all(|c| c.is_ascii_digit()))
|| t.contains("store.steampowered.com/app/")
} Try / catch
match run(opts, progress).await {
Ok(result) => handle(result),
Err(e) if e.to_string().contains("não achei appid para") => {
highlight_unresolved_inputs(&e.to_string());
}
Err(e) => eprintln!("protondb lookup failed: {e}"),
} Prevention
- Validate inputs client-side: numeric appid or a full store.steampowered.com/app/ URL
- Show a hint asking users to paste the store link or appid number, not the game name
- Normalize inputs: trim whitespace and strip tracking parameters from URLs
- Keep a mapping of game-name -> appid if users commonly type names
When it happens
Trigger: Calling run with opts.inputs containing strings that resolve_targets cannot map to an appid (e.g. game names, malformed URLs, arbitrary text), with targets ending up empty.
Common situations: Pasting a game name instead of the store URL; pasting a shortened or regional store URL the parser doesn't recognize; typos in the appid such as letters mixed in; store page URL format changes after a Valve site update.
Understand the failure class
Background: "invalid id" errors: invalid identifier format — why libraries reject IDs before lookup, and how to fix them — this error's family across 37 libraries.
Related errors
- escolha a pasta de destino para organizar
- informe um appid, um link da loja ou marque a biblioteca int
- pasta de origem não encontrada: {}
- escolha a pasta da biblioteca de destino
- {} nao esta listado em {}
AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12).
Data as JSON: /api/errors/d0b10e78bc7c9bad.
Report an issue: GitHub.
Appendix: source
Thrown at src-tauri/omniget-core/src/core/tools/games/protondb.rs:314
total: 0,
trending_tier: String::new(),
best_tier: String::new(),
rank: tier_rank("pending"),
url: store_url(app_id),
cached: false,
ok: true,
error: None,
}
}
pub async fn run(opts: ProtonOptions, progress: ProgressFn) -> anyhow::Result<ProtonResult> {
let apps = steam::scan_apps(&steam::steam_libraries(&opts.steam_dirs));
let (targets, unresolved) = resolve_targets(&opts.inputs, &apps, opts.scan_library);
if targets.is_empty() {
if unresolved.is_empty() {
anyhow::bail!("informe um appid, um link da loja ou marque a biblioteca inteira");
}
anyhow::bail!(
"não achei appid para: {} — cole o link da loja ou o número",
unresolved.join(", ")
);
}
let client = crate::core::tools::client()?;
let total = targets.len() as u64;
let mut entries: Vec<ProtonEntry> = Vec::new();
let mut from_cache = 0u64;
for (i, (app_id, name)) in targets.iter().enumerate() {
report(
&progress,
ID,
"progress",
i as u64,
Some(total),
Some(name.clone()),View on GitHub (pinned to 8600b91f42)