jdx/mise · error
remote host '{}' cannot combine install_mise with remote_mis
Error message
remote host '{}' cannot combine install_mise with remote_mise or bootstrap_command, which already provide mise on the host What it means
Thrown by `RemoteHostConfig::validate_with_source` when a host entry sets `install_mise` together with `remote_mise` or `bootstrap_command`. Both `remote_mise` and `bootstrap_command` already make mise available on the host, so combining them with `install_mise` is contradictory and rejected.
Source
Thrown at src/system/remote.rs:376
);
}
let provisioning_strategies = [
self.mise_bin.is_some(),
self.remote_mise.is_some(),
self.bootstrap_command.is_some(),
]
.into_iter()
.filter(|configured| *configured)
.count();
if provisioning_strategies > 1 {
bail!(
"remote host '{}' must set at most one of mise_bin, remote_mise, or bootstrap_command",
self.name
);
}
if let Some(install_mise) = &self.install_mise {
if self.remote_mise.is_some() || self.bootstrap_command.is_some() {
bail!(
"remote host '{}' cannot combine install_mise with remote_mise or bootstrap_command, which already provide mise on the host",
self.name
);
}
validate_install_mise_path(install_mise).wrap_err_with(|| {
format!("remote host '{}' has an invalid install_mise", self.name)
})?;
}
for option in &self.ssh_options {
validate_value("SSH option", option)?;
}
for exclude in &self.exclude {
validate_value("archive exclude", exclude)?;
}
for env in &self.mise_env {
validate_value("mise environment", env)?;
if env.contains(',') {
bail!("remote mise environment cannot contain a comma: {env}");View on GitHub (pinned to afd2eddd3a)
Solutions
- Remove `install_mise` from hosts that define `remote_mise` or `bootstrap_command`
- Or remove `remote_mise`/`bootstrap_command` and keep only `install_mise` for hosts that need mise installed
Example fix
// before install_mise = true bootstrap_command = "curl https://mise.run | sh" // after bootstrap_command = "curl https://mise.run | sh"
Defensive patterns
Strategy: validation
Validate before calling
if host.install_mise.is_some() && (host.remote_mise.is_some() || host.bootstrap_command.is_some()) {
panic!("install_mise cannot be combined with remote_mise or bootstrap_command");
} Prevention
- Treat install_mise as exclusive with remote_mise/bootstrap_command
- Document which hosts bootstrap mise vs expect it pre-installed
- Audit host entries after global config changes
When it happens
Trigger: Configuring `install_mise = true` (or a path) on a host that also sets `remote_mise` or `bootstrap_command`, then running a remote operation that validates the host config.
Common situations: Copying `install_mise` from one host entry into another that already bootstraps mise; enabling install_mise globally while some hosts define bootstrap_command.
Related errors
- remote host '{}' must set at most one of mise_bin, remote_mi
- remote bootstrap configuration is invalid for {} target(s):
- absent bootstrap group '{name}' must not set gid or system
- present bootstrap user '{name}' must not set remove_home
- absent bootstrap user '{name}' may only set state and remove
AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09).
Data as JSON: /api/errors/14b94d1b087449f3.
Report an issue: GitHub.