{"record":{"id":"2490ab5edec278bf","repo":"BoundaryML/baml","slug":"toolchain-pins-version-version-but-it-isn-t-installed","errorCode":null,"errorMessage":"{} [toolchain] pins version {version}, but it isn't installed.\nInstalled toolchains: {}\nRun: baml toolchain install {version}","messagePattern":"(.+?) \\[toolchain\\] pins version (.+?), but it isn't installed\\.\nInstalled toolchains: (.+?)\nRun: baml toolchain install (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"baml_language/crates/baml/src/main.rs","lineNumber":639,"sourceCode":"        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            }\n        ),\n        _ => anyhow!(\n            \"BAML toolchain {version} is not installed.\\nInstalled toolchains: {}\\nRun: baml toolchain install {version}\",\n            if installed.is_empty() {\n                \"(none)\"\n            } else {\n                &installed\n            }\n        ),\n    }\n}","sourceCodeStart":621,"sourceCodeEnd":657,"githubUrl":"https://github.com/BoundaryML/baml/blob/bd85ce9dee1463ff04d27efd20531013a4ff46c1/baml_language/crates/baml/src/main.rs#L621-L657","documentation":"Fires after the project baml.toml pins an exact version in [toolchain], but that version is not present in the local toolchains directory (e.g. the config was committed by a teammate or the toolchain was uninstalled). The message lists the versions that ARE installed so the mismatch is immediately visible. This is the project-config branch of missing_toolchain_error.","triggerScenarios":"Thrown at baml_language/crates/baml/src/main.rs:639 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Install the pinned version: `baml toolchain install <version>`","Or point the project at an installed version by editing the [toolchain] selector in baml.toml"],"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"}