jdx/mise · error
precompiled erlang is not supported on
Error message
precompiled erlang is not supported on {os} What it means
resolve_lock_info resolves the artifact lock for an Erlang version. When the platform has no precompiled support and the user explicitly disabled compilation (compile = false), no install path exists, so it fails with this error.
Solutions
- Remove compile = false so mise can build Erlang from source
- Install on a platform with precompiled support (Ubuntu 20.04/22.04/24.04 x86_64/aarch64, macOS x64/arm64, Windows x64/x86)
- Pin a platform that has precompiled artifacts via erlang.precompiled_os
Example fix
// before (mise.toml) [settings.erlang] compile = false // after [settings.erlang] # compile = false removed; allow source builds on unsupported platforms
Defensive patterns
Strategy: validation
Validate before calling
# confirm platform is precompiled-supported before setting compile=false case "$(uname -s)-$(uname -m)" in Linux-x86_64|Linux-aarch64|Darwin-*) echo precompiled-ok;; *) echo "do not set erlang compile=false";; esac
Prevention
- Only set compile=false on platforms with published precompiled builds
- Document that compile=false removes the source fallback
- Test tool installs on the actual CI platform image
When it happens
Trigger: Configuring erlang compile = false (or node_compile-style setting set to false) on an OS not covered by precompiled builds, then installing Erlang.
Common situations: Users on unsupported Linux distros or non-x86/arm64 platforms who set compile = false to speed installs, not realizing precompiled builds are unavailable there.
Understand the failure class
Background: "unsupported platform" / "not supported on this platform" errors: what they mean and how to fix them — this error's family across 47 libraries.
Related errors
- precompiled erlang is not available
- unsupported architecture
- unsupported OS version
- Invalid platform format
- compilation is disabled
AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17).
Data as JSON: /api/errors/84aafe87f16744f9.
Report an issue: GitHub.
Appendix: source
Thrown at src/plugins/core/erlang.rs:746
Err(err) if compile == Some(false) => Err(err),
Err(_) => self.resolve_source_lock_info(&tv.version).await,
}
}
"windows" => {
let info = match Self::windows_asset_name(&tv.version, target) {
Ok(asset_name) => {
Self::github_asset_lock_info("erlang/otp", &release_tag, &asset_name).await
}
Err(err) => Err(err),
};
match info {
Ok(info) => Ok(info),
Err(err) if compile == Some(false) => Err(err),
Err(_) => self.resolve_source_lock_info(&tv.version).await,
}
}
os if compile == Some(false) => {
bail!("precompiled erlang is not supported on {os}")
}
_ => self.resolve_source_lock_info(&tv.version).await,
}
}
}
fn source_build_kerl_env(
install_env: IndexMap<String, crate::config::env_directive::EnvValue>,
kerl_base_dir: &Path,
) -> IndexMap<String, Option<OsString>> {
let mut env = install_env
.into_iter()
.map(|(key, value)| (key, value.into_string().map(OsString::from)))
.collect::<IndexMap<_, _>>();
// Source lock metadata resolves a GitHub archive and stages it here. Keep
// kerl from selecting another backend or download directory and silently
// building a different archive instead.
env.insert(View on GitHub (pinned to 533346cc37)