sxyazi/yazi · error
Package URL `{parent}` must be in the format `owner/reposito
Error message
Package URL `{parent}` must be in the format `owner/repository` What it means
Dependency-URL parsing guard in `FromStr for Dependency`: the parent segment contains no '/', so it cannot be split into `owner/repository`. The faulting input is the part of the URL before the optional ':' child suffix.
Source
Thrown at yazi-cli/src/package/dependency.rs:105
pub(super) fn flavor_files() -> Vec<String> {
["LICENSE", "LICENSE-tmtheme", "README.md", "flavor.toml", "preview.png", "tmtheme.xml"]
.into_iter()
.map(Into::into)
.collect()
}
}
impl FromStr for Dependency {
type Err = anyhow::Error;
fn from_str(s: &str) -> std::result::Result<Self, Self::Err> {
let mut parts = s.splitn(2, ':');
let Some(parent) = parts.next() else { bail!("Package URL cannot be empty") };
let child = parts.next().unwrap_or_default();
let Some((_, repo)) = parent.split_once('/') else {
bail!("Package URL `{parent}` must be in the format `owner/repository`")
};
let name = if child.is_empty() { repo } else { child };
if !name.as_bytes().kebab_cased() {
bail!("Package name `{name}` must be in kebab-case")
}
Ok(Self {
r#use: s.to_owned(),
name: format!("{name}.yazi"),
parent: format!("{parent}{}", if child.is_empty() { ".yazi" } else { "" }),
child: if child.is_empty() { String::new() } else { format!("{child}.yazi") },
..Default::default()
})
}
}
impl<'de> Deserialize<'de> for Dependency {View on GitHub (pinned to 5f901b886b)
Solutions
- Use the `owner/repository` format, e.g. `yazi-rs/plugins:full-border`.
- Check for typos, missing owner, or URL-encoded slashes in the package URL.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at yazi-cli/src/package/dependency.rs:105 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of sxyazi/yazi@5f901b886b (2026-09-02).
Data as JSON: /api/errors/d419f27ab382f142.
Report an issue: GitHub.