Hmbown/CodeWhale · error · anyhow::Error
owned skill path {} does not exist
Error message
owned skill path {} does not exist What it means
validate_owned_child found the child path absent while require_existing is true, i.e. a mutation that presupposes an installed skill (update/remove/trust) was pointed at a package directory that no longer exists. The audit state is stale: the skill was deleted or never installed in this root. The missing child path is the input at fault; absence is permitted when require_existing is false (install path).
Source
Thrown at crates/tui/src/skills/mutation.rs:304
let anchor = owned_anchor(ctx.workspace, ctx.home, target)?;
validate_owned_target_chain(anchor, &expected, true)?;
Ok(expected)
}
/// Validate a real direct child of an already validated owned skills root.
/// Returns false only when a missing child is permitted.
fn validate_owned_child(skills_dir: &Path, child: &Path, require_existing: bool) -> Result<bool> {
if child.parent() != Some(skills_dir) {
bail!(
"refusing to mutate path {} outside direct owned root {}",
child.display(),
skills_dir.display()
);
}
let exists = checked_real_directory(child)?;
if !exists {
if require_existing {
bail!("owned skill path {} does not exist", child.display());
}
return Ok(false);
}
let canonical_root = fs::canonicalize(skills_dir).with_context(|| {
format!(
"failed to resolve owned skill root {}",
skills_dir.display()
)
})?;
let canonical_child = fs::canonicalize(child)
.with_context(|| format!("failed to resolve owned skill path {}", child.display()))?;
if canonical_child.parent() != Some(canonical_root.as_path()) {
bail!(
"owned skill path {} escapes direct root {}",
child.display(),
skills_dir.display()
);View on GitHub (pinned to 0c42157ee5)
Solutions
- Re-run a skills scan so the registry reflects what is actually on disk
- Install the skill if it was never present in this root
- Use the correct scope so the existing installation is found
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/tui/src/skills/mutation.rs:304 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Hmbown/CodeWhale@0c42157ee5 (2026-08-20).
Data as JSON: /api/errors/739ac01646853496.
Report an issue: GitHub.