jdx/mise · error
automatic cross-platform provisioning is unavailable from a…
Error message
automatic cross-platform provisioning is unavailable from a debug mise build; set mise_bin, remote_mise, or bootstrap_command
What it means
Automatic cross-platform provisioning can fetch and install an official signed mise binary for the local platform, but this download-and-verify path is disabled in debug builds (cfg!(debug_assertions)) because debug binaries have no official release artifact to compare against. A debug build therefore refuses and tells you to configure an explicit mise binary source.
Solutions
- Use a release build of mise (cargo build --release or an installed binary) so official provisioning is available
- Set mise_bin to an existing mise executable path
- Set remote_mise to control which mise the remote uses
- Provide an explicit bootstrap_command instead of relying on automatic provisioning
Example fix
// before cargo run -- remote exec ... // after cargo build --release && ./target/release/mise remote exec ... // or configure explicitly mise config set mise_bin /usr/local/bin/mise
Defensive patterns
Strategy: fallback
Validate before calling
#[cfg(debug_assertions)] // detect debug build and configure mise_bin instead of auto-provisioning
Type guard
fn can_auto_provision() -> bool { !cfg!(debug_assertions) } Try / catch
match res { Err(e) if e.message.contains("debug mise build") => use_configured_mise_bin(), other => other? } Prevention
- Run release builds when exercising remote provisioning features
- In dev, always configure mise_bin/remote_mise explicitly
- Add CI assertions that production paths use release binaries
When it happens
Trigger: Running a debug (cargo build / cargo run, non-release) mise binary that attempts to provision the local official mise binary via ensure_official_local.
Common situations: Developers running target/debug/mise during development; CI jobs that accidentally invoke the debug build; tests or tooling relying on auto-provisioning while using a locally compiled debug mise.
Related errors
- bootstrap resource dependency cycle
- brew-cask: : unsupported artifact type
- brew-cask: : unsupported step type
- brew casks are installed at their current version
- : formula has no stable source URL
AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17).
Data as JSON: /api/errors/bfab2a5300793f96.
Report an issue: GitHub.
Appendix: source
Thrown at src/system/remote.rs:1548
return Err(error).wrap_err_with(|| {
format!("official mise release artifact {asset} failed verification")
});
}
progress.finish();
info!(
"using signed official mise {} artifact {asset}",
env!("CARGO_PKG_VERSION")
);
self.artifacts.insert(asset, path.clone());
Ok(path)
}
async fn ensure_official_local(&mut self, local: &Path) -> Result<()> {
if self.official_local_verified {
return Ok(());
}
if cfg!(debug_assertions) {
bail!(
"automatic cross-platform provisioning is unavailable from a debug mise build; set mise_bin, remote_mise, or bootstrap_command"
);
}
let local_os = normalize_os(std::env::consts::OS);
let local_arch = normalize_arch(std::env::consts::ARCH);
let candidates = official_release_assets(&local_os, &local_arch)?;
let actual = crate::hash::file_hash_sha256(local, None)?;
let manifest = self.manifest().await?;
let official = candidates.iter().any(|asset| {
manifest
.checksum(asset)
.is_ok_and(|expected| expected.eq_ignore_ascii_case(&actual))
});
if !official {
bail!(
"automatic cross-platform provisioning refuses to replace a custom mise build with an official binary because {} does not match the signed mise {} release checksums; set mise_bin, remote_mise, or bootstrap_command",
local.display(),
env!("CARGO_PKG_VERSION")View on GitHub (pinned to 533346cc37)