BoundaryML/baml · error
channel {} was selected from a different manifest source. Ru
Error message
channel {} was selected from a different manifest source.
Run: baml toolchain use {} under the current manifest source. What it means
Fires during version resolution for a channel selector (canary/nightly): the channel was previously pinned via `baml toolchain use` while a different manifest base URL was active, and the recorded manifest source in the channel state does not match the current manifest base URL. The wrapper refuses to serve the cached concrete version because it was resolved from a different release manifest (e.g. switching between an internal mirror and the public manifest).
Source
Thrown at baml_language/crates/baml/src/main.rs:613
fn concrete_version_for_selector_with_base(
selector: &ResolvedSelector,
current_base: &str,
) -> Result<String> {
if is_path_selector(&selector.selector) {
return Err(anyhow!(
"active toolchain is a local path and has no version: {}",
selector.selector
));
}
if is_channel(&selector.selector) {
let state = read_state();
if let Some(channel) = state.channels.get(&selector.selector) {
if channel
.manifest_base_url
.as_deref()
.is_some_and(|base| base.trim_end_matches('/') != current_base)
{
return Err(anyhow!(
"channel {} was selected from a different manifest source.\nRun: baml toolchain use {} under the current manifest source.",
selector.selector,
selector.selector
));
}
return Ok(channel.active_version.clone());
}
return match &selector.source {
SelectorSource::Project(path) => Err(anyhow!(
"baml.toml [toolchain] selects channel {}, but no active concrete version is recorded locally.\nRun: baml toolchain use {}",
selector.selector,
selector.selector
)
.context(format!("project config: {}", path.display()))),
_ => Err(anyhow!(
"error: no BAML toolchain is installed.\nRun: baml toolchain use canary\nOr: baml toolchain use nightly"
)),
};View on GitHub (pinned to bd85ce9dee)
Solutions
- Re-select the channel under the current manifest source: `baml toolchain use <channel>`
- If you intended the previous manifest source, restore the corresponding manifest base URL configuration and re-run
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at baml_language/crates/baml/src/main.rs:613 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of BoundaryML/baml@bd85ce9dee (2026-09-12).
Data as JSON: /api/errors/def68d8b387153b7.
Report an issue: GitHub.