BoundaryML/baml · error
{version} is a local path and is not managed by the wrapper,
Error message
{version} is a local path and is not managed by the wrapper, so there is nothing to uninstall.
To stop using it, select a managed toolchain instead.
Run: baml toolchain use canary
Or: baml toolchain use nightly What it means
uninstall_toolchain only manages registry-installed toolchains under the toolchains directory. If the given version is a path selector (a local build), there is nothing installed to remove, so the wrapper explains this and points the user at switching selectors via `baml toolchain use` instead.
Source
Thrown at baml_language/crates/baml/src/main.rs:1511
println!("{channel}: {}", state.active_version);
}
let installed = installed_toolchains();
if installed.is_empty() {
println!("installed toolchains: (none)");
} else {
println!("installed toolchains:");
for version in installed {
println!(" {version}");
}
}
println!();
println!("Remote versions were not checked.");
println!("Run: baml toolchain status");
}
fn uninstall_toolchain(version: &str) -> Result<()> {
if is_path_selector(version) {
return Err(anyhow!(
"{version} is a local path and is not managed by the wrapper, so there is nothing to uninstall.\nTo stop using it, select a managed toolchain instead.\nRun: baml toolchain use canary\nOr: baml toolchain use nightly"
));
}
let dir = toolchains_dir().join(version);
if !dir.exists() {
return Err(anyhow!("BAML toolchain {version} is not installed"));
}
fs::remove_dir_all(dir)?;
println!("uninstalled BAML toolchain {version}");
Ok(())
}
#[cfg(any(not(feature = "self-update"), feature = "no-self-update"))]
fn self_update() -> Result<()> {
Err(anyhow!(
"self-update is disabled in this build.\nUpdate BAML with your package manager."
))
}View on GitHub (pinned to bd85ce9dee)
Solutions
- Delete the local build directory manually if you no longer need it.
- Switch to a managed toolchain first: `baml toolchain use canary` or `baml toolchain use nightly`.
- If you meant to remove a managed install, pass its version name (e.g. `baml toolchain uninstall 0.210.0`).
Example fix
// before baml toolchain uninstall ./target/release/baml // after baml toolchain use canary # stop using the local path rm -rf ./target/release/baml # remove the local build manually
Defensive patterns
Strategy: validation
Validate before calling
const isPathSelector = (v: string) => v.startsWith('/') || v.startsWith('./') || v.includes('/');
if (isPathSelector(version)) console.warn('local path toolchain: uninstall it manually, then `baml toolchain use canary`'); Prevention
- Only pass registry version names to `baml toolchain uninstall`.
- Track local builds outside the wrapper; remove their directories manually.
- Switch to a managed toolchain (`baml toolchain use canary`) before cleaning up local builds.
When it happens
Trigger: Running `baml toolchain uninstall <version>` where is_path_selector(version) is true — the argument is a filesystem path to a locally built toolchain rather than an installed version name.
Common situations: Trying to "uninstall" a local dev build selected via --path; scripting cleanup that treats local builds like installed versions; forgetting that path-selected toolchains are not tracked by the wrapper.
Understand the failure class
Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.
Related errors
- BAML toolchain {version} is not installed
- 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
AI-assisted analysis of BoundaryML/baml@bd85ce9dee (2026-09-12).
Data as JSON: /api/errors/608b0bfc287752a1.
Report an issue: GitHub.