{"record":{"id":"bfab2a5300793f96","repo":"jdx/mise","slug":"automatic-cross-platform-provisioning-is-unavailab","errorCode":null,"errorMessage":"automatic cross-platform provisioning is unavailable from a debug mise build; set mise_bin, remote_mise, or bootstrap_command","messagePattern":"automatic cross-platform provisioning is unavailable from a debug mise build; set mise_bin, remote_mise, or bootstrap_command","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/system/remote.rs","lineNumber":1548,"sourceCode":"            return Err(error).wrap_err_with(|| {\n                format!(\"official mise release artifact {asset} failed verification\")\n            });\n        }\n        progress.finish();\n        info!(\n            \"using signed official mise {} artifact {asset}\",\n            env!(\"CARGO_PKG_VERSION\")\n        );\n        self.artifacts.insert(asset, path.clone());\n        Ok(path)\n    }\n\n    async fn ensure_official_local(&mut self, local: &Path) -> Result<()> {\n        if self.official_local_verified {\n            return Ok(());\n        }\n        if cfg!(debug_assertions) {\n            bail!(\n                \"automatic cross-platform provisioning is unavailable from a debug mise build; set mise_bin, remote_mise, or bootstrap_command\"\n            );\n        }\n        let local_os = normalize_os(std::env::consts::OS);\n        let local_arch = normalize_arch(std::env::consts::ARCH);\n        let candidates = official_release_assets(&local_os, &local_arch)?;\n        let actual = crate::hash::file_hash_sha256(local, None)?;\n        let manifest = self.manifest().await?;\n        let official = candidates.iter().any(|asset| {\n            manifest\n                .checksum(asset)\n                .is_ok_and(|expected| expected.eq_ignore_ascii_case(&actual))\n        });\n        if !official {\n            bail!(\n                \"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\",\n                local.display(),\n                env!(\"CARGO_PKG_VERSION\")","sourceCodeStart":1530,"sourceCodeEnd":1566,"githubUrl":"https://github.com/jdx/mise/blob/533346cc374382b41ec5ff70536252b2e96e725c/src/system/remote.rs#L1530-L1566","documentation":"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.","triggerScenarios":"Running a debug (cargo build / cargo run, non-release) mise binary that attempts to provision the local official mise binary via ensure_official_local.","commonSituations":"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.","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"],"exampleFix":"// before\ncargo run -- remote exec ...\n// after\ncargo build --release && ./target/release/mise remote exec ...\n// or configure explicitly\nmise config set mise_bin /usr/local/bin/mise","handlingStrategy":"fallback","validationCode":"#[cfg(debug_assertions)] // detect debug build and configure mise_bin instead of auto-provisioning","typeGuard":"fn can_auto_provision() -> bool { !cfg!(debug_assertions) }","tryCatchPattern":"match res { Err(e) if e.message.contains(\"debug mise build\") => use_configured_mise_bin(), other => other? }","preventionTips":["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"],"tags":["debug-build","provisioning","unsupported"],"backgroundTag":"feature-not-enabled","analyzedSha":"533346cc374382b41ec5ff70536252b2e96e725c","analyzedAt":"2026-09-17T13:35:38.149Z","contentChangedAt":"2026-09-17T13:35:38.149Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}