jdx/mise · error
select a remote target by name, --tag, or --all (configured:
Error message
select a remote target by name, --tag, or --all (configured: {}) What it means
The remote inventory IS non-empty (hosts configured under [bootstrap.remote.hosts]) but the selection - positional target names, --host, --tag, --all - resolved to zero hosts (src/cli/bootstrap.rs:2341). mise refuses an empty fan-out and prints the configured host names to choose from.
Source
Thrown at src/cli/bootstrap.rs:2341
let config = Config::get().await?;
let config_excludes = system::remote::excludes_from_config(&config);
let inventory = system::remote::hosts_from_config(&config, &config_excludes)?;
let mut selected = select_remote_inventory(&inventory, &self.targets, self.all, &self.tag)?;
let ad_hoc_source = self.source.clone().unwrap_or(std::env::current_dir()?);
for destination in &self.host {
let host =
system::remote::ad_hoc_host(destination, ad_hoc_source.clone(), &config_excludes)?;
if selected.insert(host.name.clone(), host).is_some() {
bail!("remote target '{destination}' was selected more than once");
}
}
if selected.is_empty() {
if inventory.is_empty() {
bail!(
"no remote targets configured; pass --host [user@]host or add [bootstrap.remote.hosts]"
);
}
bail!(
"select a remote target by name, --tag, or --all (configured: {})",
inventory.keys().cloned().collect::<Vec<_>>().join(", ")
);
}
let overrides = system::remote::RemoteOverrides {
source: self.source,
port: self.port,
identity_file: self.identity_file,
exclude: self.exclude,
ssh_options: self.ssh_option,
mise_bin: self.mise_bin,
remote_mise: self.remote_mise,
bootstrap_command: self.bootstrap_command,
};
let options = system::remote::RemoteRunOptions {
dry_run: self.dry_run,
yes: self.yes,View on GitHub (pinned to 9dcfcaa0dc)
Solutions
- Pass one of the names printed in the error: 'mise bootstrap remote <name>'
- Use --tag <value> matching a host's tags, or --all to take the whole inventory
- Fix the host's tags in [bootstrap.remote.hosts.<name>] if the tag value is wrong
Example fix
# before mise bootstrap remote # hosts exist, none selected # Error: select a remote target by name, --tag, or --all (configured: web1, web2) # after mise bootstrap remote web1 # or: mise bootstrap remote --tag prod or: --all
Defensive patterns
Strategy: validation
Validate before calling
# bash: verify the tag/target appears in config before fan-out if [ -n "$TAG" ] && ! grep -F "$TAG" mise.toml >/dev/null 2>&1; then echo "no host tagged '$TAG' in mise.toml" >&2; exit 1 fi
Prevention
- Keep an inventory doc of host names and their tags
- Default scripts to an explicit host name or --all instead of relying on a 'default' host
When it happens
Trigger: 'mise bootstrap remote' with hosts configured but no selector given; --tag value matching no host's tags; a misspelled positional target name; empty --targets value.
Common situations: Expecting a default host to be implied; renamed hosts while scripts still pass old names; tags defined on only some hosts.
Related errors
- remote target '{destination}' was selected more than once
- --connect-timeout must be greater than zero
- no remote targets configured; pass --host [user@]host or add
- remote bootstrap configuration is invalid for {} target(s):
- remote bootstrap failed on {} target(s): {}
AI-assisted analysis of jdx/mise@9dcfcaa0dc (2026-08-17).
Data as JSON: /api/errors/085d130777fc9a60.
Report an issue: GitHub.