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
- Check the exact source name with `grok marketplace list` and re-run update with the correct filter.
- Omit the filter to update all configured sources.
- 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
- Copy source names from `grok marketplace list` output rather than typing them.
- Update scripts when sources are renamed or removed.
- Omit the filter to update all sources when unsure.
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
- session '{name}' not found
- Session does not exist: {}
- Session does not exist
- Plugin "{name}" not found. Run `grok plugin list` to see ins
- URL cannot be empty.
AI-assisted analysis of xai-org/grok-build@bc7f02eddd (2026-08-31).
Data as JSON: /api/errors/ed5ac9263dad96c0.
Report an issue: GitHub.