BoundaryML/baml · error
{selector} is a local path; there is nothing to install. Run
Error message
{selector} is a local path; there is nothing to install.
Run: baml toolchain use {selector} What it means
install_toolchain refuses a selector that looks like a local path (is_path_selector), because there is nothing to download or install for a local build. It directs the user to activate the path directly with `baml toolchain use`. This prevents nonsensical installs of filesystem paths.
Source
Thrown at baml_language/crates/baml/src/main.rs:1175
!is_channel(selector)
|| cache_path
.metadata()
.and_then(|metadata| metadata.modified())
.ok()
.and_then(|modified| SystemTime::now().duration_since(modified).ok())
.is_some_and(|age| age <= CHANNEL_CACHE_TTL)
}
}
}
fn install_toolchain(
selector: &str,
activate_channel: bool,
override_url: Option<&str>,
force: bool,
) -> Result<()> {
if is_path_selector(selector) {
return Err(anyhow!(
"{selector} is a local path; there is nothing to install.\nRun: baml toolchain use {selector}"
));
}
install_toolchain_with_policy(
selector,
activate_channel,
override_url,
force,
FetchPolicy::CacheAllowed,
)
}
fn install_toolchain_with_policy(
selector: &str,
activate_channel: bool,
override_url: Option<&str>,
force: bool,
policy: FetchPolicy,View on GitHub (pinned to bd85ce9dee)
Solutions
- Use the activation command instead: `baml toolchain use <path>`.
- If you meant to install a released version, pass a version or channel name (e.g. canary, nightly) instead of a path.
Example fix
// before baml toolchain install ./target/release/baml // after baml toolchain use ./target/release/baml
Defensive patterns
Strategy: validation
Validate before calling
if (selector.startsWith('/') || selector.startsWith('./') || selector.includes('/')) {
// it's a path selector: use `baml toolchain use <selector>` instead of install
} Prevention
- Remember: install is for released versions only; use is for activating anything including local paths.
- In scripts, detect path-like selectors and route to `toolchain use`.
- Keep local dev builds activated via `baml toolchain use`, not install.
When it happens
Trigger: Running `baml toolchain install <selector>` (with activate_channel / override_url / force variants) where the selector matches the path-selector syntax (e.g. starts with ./, /, or contains path separators).
Common situations: Copy-pasting a local build path into `install` instead of `use`; scripting around local dev builds of the toolchain; misunderstanding that path selectors bypass the registry entirely.
Understand the failure class
Background: "Unknown argument", "Invalid value", and "must be one of": invalid CLI argument errors explained — this error's family across 35 libraries.
Related errors
- usage: baml toolchain install <canary|nightly|version>
- usage: baml toolchain use <canary|nightly|version|path>
- usage: baml toolchain pin <canary|nightly|version|path>
- usage: baml toolchain pin <canary|nightly|version|path> unex
- usage: baml toolchain uninstall <version>
AI-assisted analysis of BoundaryML/baml@bd85ce9dee (2026-09-12).
Data as JSON: /api/errors/c9bcdcf0177eacfc.
Report an issue: GitHub.