Hmbown/CodeWhale · error
local install path must not be empty
Error message
local install path must not be empty
What it means
PluginInstallSource::local (the fallback arm of parse for non-remote specs) rejected a local path that is empty after trimming. Note plain whitespace is treated as absent input, matching the top-level empty-spec guard.
Source
Thrown at crates/tui/src/plugins/install/mod.rs:129
|| trimmed.starts_with("http://")
{
let source = InstallSource::parse(trimmed)?;
return match source {
InstallSource::GitHubRepo(_) | InstallSource::DirectUrl(_) => {
Ok(Self::Remote(source))
}
InstallSource::Registry(_) => {
unreachable!("prefixed specs never parse as a registry name")
}
};
}
Self::local(trimmed)
}
fn local(spec: &str) -> Result<Self> {
let trimmed = spec.trim();
if trimmed.is_empty() {
bail!("local install path must not be empty");
}
Ok(Self::LocalPath(PathBuf::from(trimmed)))
}
}
/// Serialize a source for the `.installed-from` marker. Must round-trip
/// through [`PluginInstallSource::parse`].
fn plugin_spec_string(source: &PluginInstallSource, canonical_source: Option<&Path>) -> String {
match source {
PluginInstallSource::LocalPath(_) => {
let path = canonical_source.expect("local installs record the canonical source");
format!("path:{}", path.display())
}
PluginInstallSource::Remote(remote) => source_spec_string(remote),
}
}
// ─────────────────────────────────────────────────────────────────────────────View on GitHub (pinned to 0c42157ee5)
Solutions
- Supply the actual bundle directory path
- Retry /plugin install
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/tui/src/plugins/install/mod.rs:129 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/161c07e37e0485bf.
Report an issue: GitHub.