jdx/mise · error
remote host ' ' cannot combine install_mise with…
Error message
remote host '{}' cannot combine install_mise with remote_mise or bootstrap_command, which already provide mise on the host What it means
install_mise asks the tool to install mise on the remote host itself, but remote_mise and bootstrap_command already place mise on the host by other means. Combining them is redundant and ambiguous, so validate_with_source rejects the combination with a host-specific message.
Solutions
- Remove install_mise if the host already gets mise via remote_mise or bootstrap_command.
- Remove remote_mise/bootstrap_command and keep only install_mise to have mise installed automatically.
- Use install_mise's path/version options instead of a hand-rolled bootstrap_command.
Example fix
// before [[remote_host]] name = "builder" install_mise = true bootstrap_command = "curl https://mise.run | sh" // after [[remote_host]] name = "builder" install_mise = true
Defensive patterns
Strategy: validation
Validate before calling
function assertInstallMiseExclusive(host) {
if (host.install_mise != null && (host.remote_mise != null || host.bootstrap_command != null)) {
throw new Error(`remote host '${host.name}': drop install_mise or the bootstrap/remote_mise path`);
}
} Prevention
- Treat install_mise as the only provisioning field when you want automatic installation.
- When migrating from bootstrap_command to install_mise, delete the old field in the same change.
- Add a config lint step covering mutually exclusive remote host fields.
When it happens
Trigger: A remote host entry sets `install_mise` together with either `remote_mise` or `bootstrap_command`; validate() or apply_overrides() bail from this check.
Common situations: Config evolved from a bootstrap_command setup and someone added install_mise to 'upgrade' the install path; merging two host templates that each solved provisioning differently.
Understand the failure class
Background: Conflicting config options: "cannot be used together" — configuration validation errors across open-source libraries — this error's family across 162 libraries.
Related errors
- remote host ' ' must set at most one of mise_bin…
- remote host ' ' bootstrap command contains NUL
- remote host ' ' port must be greater than zero
- remote mise environment cannot contain a comma
- backend min_version requires version_order = "semver"
AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17).
Data as JSON: /api/errors/14b94d1b087449f3.
Report an issue: GitHub.
Appendix: 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 533346cc37)