{"record":{"id":"2d9c9b497294dbd4","repo":"BoundaryML/baml","slug":"error-no-baml-toolchain-is-installed-run-baml-toolchain-use","errorCode":null,"errorMessage":"error: no BAML toolchain is installed.\nRun: baml toolchain use canary\nOr:  baml toolchain use nightly","messagePattern":"error: no BAML toolchain is installed\\.\nRun: baml toolchain use canary\nOr:  baml toolchain use nightly","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"baml_language/crates/baml/src/main.rs","lineNumber":628,"sourceCode":"                .as_deref()\n                .is_some_and(|base| base.trim_end_matches('/') != current_base)\n            {\n                return Err(anyhow!(\n                    \"channel {} was selected from a different manifest source.\\nRun: baml toolchain use {} under the current manifest source.\",\n                    selector.selector,\n                    selector.selector\n                ));\n            }\n            return Ok(channel.active_version.clone());\n        }\n        return match &selector.source {\n            SelectorSource::Project(path) => Err(anyhow!(\n                \"baml.toml [toolchain] selects channel {}, but no active concrete version is recorded locally.\\nRun: baml toolchain use {}\",\n                selector.selector,\n                selector.selector\n            )\n            .context(format!(\"project config: {}\", path.display()))),\n            _ => Err(anyhow!(\n                \"error: no BAML toolchain is installed.\\nRun: baml toolchain use canary\\nOr:  baml toolchain use nightly\"\n            )),\n        };\n    }\n    Ok(selector.selector.clone())\n}\n\nfn missing_toolchain_error(selector: &ResolvedSelector, version: &str) -> anyhow::Error {\n    let installed = installed_toolchains().join(\", \");\n    match &selector.source {\n        SelectorSource::Project(path) => anyhow!(\n            \"{} [toolchain] pins version {version}, but it isn't installed.\\nInstalled toolchains: {}\\nRun: baml toolchain install {version}\",\n            path.display(),\n            if installed.is_empty() {\n                \"(none)\"\n            } else {\n                &installed\n            }","sourceCodeStart":610,"sourceCodeEnd":646,"githubUrl":"https://github.com/BoundaryML/baml/blob/bd85ce9dee1463ff04d27efd20531013a4ff46c1/baml_language/crates/baml/src/main.rs#L610-L646","documentation":"The catch-all 'no toolchain installed' guard in version resolution: the selector is a channel that has no local state entry, and the selector did not come from a project baml.toml (i.e. it came from the global default or env), so there is nothing to resolve or exec. On a fresh machine with no `baml toolchain use` ever run, every invocation that needs the real toolchain hits this.","triggerScenarios":"Thrown at baml_language/crates/baml/src/main.rs:628 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Install and activate a toolchain: `baml toolchain use canary` or `baml toolchain use nightly`","Or install a specific version with `baml toolchain install <version>` then `baml toolchain use <version>`"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"bd85ce9dee1463ff04d27efd20531013a4ff46c1","analyzedAt":"2026-09-12T03:38:25.718Z","contentChangedAt":"2026-09-12T03:38:25.718Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}