jdx/mise · error
remote host '{}' mise binary does not exist: {}
Error message
remote host '{}' mise binary does not exist: {} What it means
Thrown by `RemoteHostConfig::validate_with_source` when a remote host entry sets `mise_bin` to a path that does not exist as a file. This path tells mise where the mise binary already lives on the remote host; mise validates that the local path you wrote is sane before attempting the remote session.
Source
Thrown at src/system/remote.rs:354
for link in &self.copy_link {
validate_copy_link(&self.source, link).wrap_err_with(|| {
format!("remote host '{}' has invalid copy_link", self.name)
})?;
}
}
if let Some(identity) = &self.identity_file
&& !identity.is_file()
{
bail!(
"remote host '{}' identity file does not exist: {}",
self.name,
identity.display()
);
}
if let Some(binary) = &self.mise_bin
&& !binary.is_file()
{
bail!(
"remote host '{}' mise binary does not exist: {}",
self.name,
binary.display()
);
}
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
);View on GitHub (pinned to afd2eddd3a)
Solutions
- Set `mise_bin` to the actual mise binary path on the target host (check with `which mise` on the host)
- Remove `mise_bin` and use `remote_mise`, `bootstrap_command`, or `install_mise` provisioning instead
- Install mise on the remote host at the configured path
Example fix
// before mise_bin = "/opt/mise/bin/mise" // after mise_bin = "/usr/local/bin/mise"
Defensive patterns
Strategy: validation
Validate before calling
if !Path::new(&host.mise_bin).is_file() {
panic!("mise_bin does not exist: {}", host.mise_bin);
} Prevention
- Copy the exact path from `which mise` on the target host
- Prefer `install_mise` or `remote_mise` instead of hardcoding mise_bin paths
- Re-verify paths when migrating configs between machines
When it happens
Trigger: Configuring `mise_bin` with a typo'd or non-existent binary path and running a remote operation, so `validate`/`apply_overrides` rejects the host config.
Common situations: Hand-typed install path that doesn't match where mise was installed (`~/.local/bin/mise` vs `/usr/local/bin/mise`); mise uninstalled or moved on the host; config copied between machines with different layouts.
Understand the failure class
Background: "File not found" and ENOENT errors: why libraries can't find a file that should exist — this error's family across 50 libraries.
Related errors
- remote host '{}' port must be greater than zero
- remote host '{}' identity file does not exist: {}
- invalid remote global configuration path
- remote bootstrap configuration is invalid for {} target(s):
- remote host '{}' source is not a directory: {}
AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09).
Data as JSON: /api/errors/5a9543fc69b4a814.
Report an issue: GitHub.