zeroclaw-labs/zeroclaw · error · anyhow::Error
skill '{source}' not found in the registry and no skills are
Error message
skill '{source}' not found in the registry and no skills are available What it means
Registry-based skill install (install by source name from the default skills registry): after ensure_skills_registry clones/updates the registry, skills/<source> is not a directory and the registry listing returned zero names. The local registry clone is empty or broken — no skills can be installed from it.
Source
Thrown at crates/zeroclaw-runtime/src/skills/mod.rs:2525
install_local_skill_source(skill_dir_str, skills_path, allow_scripts)
})()
}
pub fn install_registry_skill_source(
source: &str,
skills_path: &Path,
allow_scripts: bool,
workspace_dir: &Path,
registry_url: Option<&str>,
suppress_tier_banner: bool,
) -> Result<(PathBuf, usize)> {
let registry_dir = ensure_skills_registry(workspace_dir, registry_url)?;
let skill_dir = registry_dir.join("skills").join(source);
if !skill_dir.is_dir() {
let available = list_registry_skill_names(®istry_dir);
if available.is_empty() {
anyhow::bail!("skill '{source}' not found in the registry and no skills are available");
}
anyhow::bail!(
"skill '{source}' not found in the registry.\nAvailable skills: {}",
available.join(", ")
);
}
if !suppress_tier_banner {
let (tier, version) = lookup_registry_skill_tier(®istry_dir, source);
print_install_tier_banner(source, version.as_deref(), tier);
}
install_local_skill_source(
skill_dir.to_str().with_context(|| {
format!(
"registry path is not valid UTF-8: {}",
skill_dir.display().to_string()
)View on GitHub (pinned to 88bb9c8533)
Solutions
- Delete the local registry clone inside the workspace and retry so it re-clones fresh.
- Verify the configured registry URL is correct and reachable, and that the repo has a skills/ directory with entries.
- Check disk space and permissions on the workspace dir — partial clones often come from IO failures.
- If the registry layout changed upstream, pin to a compatible tag/commit or update zeroclaw.
Example fix
# before: stale/empty registry cache zeroclaw skills install from-registry:my-skill # error: skill 'my-skill' not found in the registry and no skills are available # after: wipe the cache so it re-clones rm -rf .zeroclaw/skills-registry && zeroclaw skills install from-registry:my-skill
Defensive patterns
Strategy: validation
Validate before calling
fn registry_ready(registry_dir: &std::path::Path) -> bool {
registry_dir
.join("skills")
.read_dir()
.map(|mut it| it.any(|e| e.map(|e| e.path().is_dir()).unwrap_or(false)))
.unwrap_or(false)
}
// if false, delete registry_dir and re-clone before installing Try / catch
match install_registry_skill(source) {
Err(e) if e.to_string().contains("no skills are available") => {
refresh_registry_clone()?; // rm -rf + re-clone, then retry once
install_registry_skill(source)?
}
rest => rest?,
} Prevention
- After any failed/interrupted registry clone, clear the cache dir before the next install.
- Monitor disk space and IO errors — empty registry listings are usually broken clones.
- Verify the registry URL responds with a real repo (git ls-remote) in setup scripts.
When it happens
Trigger: Calling the registry install path with a source name when `registry_dir/skills/<source>` is not a dir and `list_registry_skill_names(®istry_dir)` is empty — e.g. the registry clone failed partway, the registry repo is empty, or the registry layout changed.
Common situations: First-use scenario where the registry clone was interrupted (disk full, network drop); registry URL overridden in config to an empty repo; registry repo restructured so skills/ moved; corrupted workspace cache dir.
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
- skill '{skill_name}' not found in registry '{registry_name}'
- skill '{$skill}' not found in {$url}: no skills/ directory,
- skill '{$skill}' not found in {$url}. Available skills: {$av
- skill '{source}' not found in the registry. Available skills
- skill '{skill_name}' not found in registry '{registry_name}'
AI-assisted analysis of zeroclaw-labs/zeroclaw@88bb9c8533 (2026-08-23).
Data as JSON: /api/errors/8412815255f73300.
Report an issue: GitHub.