xai-org/grok-build · error

Marketplace source "{filter}" not found.

Error message

Marketplace source "{filter}" not found.

What it means

The marketplace `update` command filters sources by name. If no source was refreshed, no errors occurred, and a name filter was given that matched no source (name_matched is false), the command bails with this message. It distinguishes local sources (which need no sync) from genuinely unknown filter names.

Source

Thrown at crates/codegen/xai-grok-pager/src/plugin_cmd.rs:1098

                url,
                branch.as_deref(),
                cache_root,
            ) {
                Ok(_) => {
                    println!("  {}: synced", source.name);
                    refreshed += 1;
                }
                Err(e) => errors.push(format!("{}: {e}", source.name)),
            }
        }
    }

    if refreshed == 0 && errors.is_empty() {
        if let Some(filter) = name {
            if name_matched {
                println!("Source \"{filter}\" is local, nothing to sync.");
            } else {
                bail!("Marketplace source \"{filter}\" not found.");
            }
        } else {
            println!("No marketplace sources configured.");
        }
    } else if errors.is_empty() {
        println!("Refreshed {refreshed} source(s).");
    } else {
        eprintln!(
            "Refreshed {refreshed} source(s) with {} error(s): {}",
            errors.len(),
            errors.join("; "),
        );
    }
    Ok(())
}

#[cfg(test)]
mod tests {

View on GitHub (pinned to bc7f02eddd)

Solutions

  1. Check the exact source name with `grok marketplace list` and re-run update with the correct filter.
  2. Omit the filter to update all configured sources.
  3. Update stale scripts that reference removed marketplace sources.

Example fix

// before
grok marketplace update my-markeplace
// after
grok marketplace list
grok marketplace update my-marketplace
Defensive patterns

Strategy: validation

Validate before calling

let name = "my-marketplace";
let listed = std::process::Command::new("grok")
    .args(["marketplace", "list"])
    .output()?;
if !String::from_utf8_lossy(&listed.stdout).contains(name) {
    eprintln!("filter {name} matches no source; skipping update");
    return Ok(());
}

Prevention

When it happens

Trigger: Running `grok marketplace update <filter>` where no refreshed==0 && errors.is_empty() holds and the filter does not match any configured source name — i.e., a typo or a removed source name.

Common situations: Typo in the source name; source was removed but a script still references it; case mismatch in the filter string.

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


AI-assisted analysis of xai-org/grok-build@bc7f02eddd (2026-08-31). Data as JSON: /api/errors/ed5ac9263dad96c0. Report an issue: GitHub.