tonhowtf/omniget · error

informe um appid, um link da loja ou marque a biblioteca int

Error message

informe um appid, um link da loja ou marque a biblioteca inteira

What it means

run in protondb.rs bails with this message when the request is empty: after resolving the user inputs against scanned Steam apps, targets is empty AND unresolved is also empty. That means the caller gave no appids, no store links, and did not set scan_library, so there is nothing to look up. Message in Portuguese: 'provide an appid, a store link, or check the whole library'.

Solutions

  1. Provide at least one valid input in opts.inputs (a Steam appid number or a store page link)
  2. Set opts.scan_library = true to scan the entire Steam library instead of specific targets
  3. Guard in the caller: bail/return early when inputs is empty and scan_library is false

Example fix

// before
run(ProtonOptions { inputs: vec![], scan_library: false, .. }).await?;
// after
run(ProtonOptions { inputs: vec!["570".into()], scan_library: false, .. }).await?;
// or
run(ProtonOptions { inputs: vec![], scan_library: true, .. }).await?;
Defensive patterns

Strategy: validation

Validate before calling

if opts.inputs.iter().all(|i| i.trim().is_empty()) && !opts.scan_library {
    return Err(anyhow::anyhow!("provide an appid, a store link, or enable library scan"));
}

Try / catch

match run(opts, progress).await {
    Ok(result) => handle(result),
    Err(e) if e.to_string().contains("informe um appid") => show_input_prompt_to_user(),
    Err(e) => eprintln!("protondb lookup failed: {e}"),
}

Prevention

When it happens

Trigger: Calling run with ProtonOptions where opts.inputs is empty/whitespace-only and opts.scan_library is false, and every input (if any) resolved cleanly but matched nothing that produced targets while leaving no unresolved entries.

Common situations: Invoking the protondb tool from a frontend with an empty search box and library scan unchecked; default-constructed ProtonOptions passed to run; inputs containing only whitespace strings that resolve_targets drops.

Understand the failure class

Background: "missing required argument" and "the following required arguments were not provided": what required-argument errors mean and how to fix them — this error's family across 20 libraries.

Related errors


AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12). Data as JSON: /api/errors/383665d45a304c05. Report an issue: GitHub.

Appendix: source

Thrown at src-tauri/omniget-core/src/core/tools/games/protondb.rs:312

        confidence: String::new(),
        score: 0.0,
        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,

View on GitHub (pinned to 8600b91f42)