{"record":{"id":"085d130777fc9a60","repo":"jdx/mise","slug":"select-a-remote-target-by-name-tag-or-all-c","errorCode":null,"errorMessage":"select a remote target by name, --tag, or --all (configured: {})","messagePattern":"select a remote target by name, --tag, or --all \\(configured: (.+?)\\)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/cli/bootstrap.rs","lineNumber":2341,"sourceCode":"        let config = Config::get().await?;\n        let config_excludes = system::remote::excludes_from_config(&config);\n        let inventory = system::remote::hosts_from_config(&config, &config_excludes)?;\n        let mut selected = select_remote_inventory(&inventory, &self.targets, self.all, &self.tag)?;\n        let ad_hoc_source = self.source.clone().unwrap_or(std::env::current_dir()?);\n        for destination in &self.host {\n            let host =\n                system::remote::ad_hoc_host(destination, ad_hoc_source.clone(), &config_excludes)?;\n            if selected.insert(host.name.clone(), host).is_some() {\n                bail!(\"remote target '{destination}' was selected more than once\");\n            }\n        }\n        if selected.is_empty() {\n            if inventory.is_empty() {\n                bail!(\n                    \"no remote targets configured; pass --host [user@]host or add [bootstrap.remote.hosts]\"\n                );\n            }\n            bail!(\n                \"select a remote target by name, --tag, or --all (configured: {})\",\n                inventory.keys().cloned().collect::<Vec<_>>().join(\", \")\n            );\n        }\n\n        let overrides = system::remote::RemoteOverrides {\n            source: self.source,\n            port: self.port,\n            identity_file: self.identity_file,\n            exclude: self.exclude,\n            ssh_options: self.ssh_option,\n            mise_bin: self.mise_bin,\n            remote_mise: self.remote_mise,\n            bootstrap_command: self.bootstrap_command,\n        };\n        let options = system::remote::RemoteRunOptions {\n            dry_run: self.dry_run,\n            yes: self.yes,","sourceCodeStart":2323,"sourceCodeEnd":2359,"githubUrl":"https://github.com/jdx/mise/blob/9dcfcaa0dc8747a2577d3270b69bb9d8313b2807/src/cli/bootstrap.rs#L2323-L2359","documentation":"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.","triggerScenarios":"'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.","commonSituations":"Expecting a default host to be implied; renamed hosts while scripts still pass old names; tags defined on only some hosts.","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"],"exampleFix":"# before\nmise bootstrap remote            # hosts exist, none selected\n# Error: select a remote target by name, --tag, or --all (configured: web1, web2)\n\n# after\nmise bootstrap remote web1   # or: mise bootstrap remote --tag prod   or: --all","handlingStrategy":"validation","validationCode":"# bash: verify the tag/target appears in config before fan-out\nif [ -n \"$TAG\" ] && ! grep -F \"$TAG\" mise.toml >/dev/null 2>&1; then\n  echo \"no host tagged '$TAG' in mise.toml\" >&2; exit 1\nfi","typeGuard":null,"tryCatchPattern":null,"preventionTips":["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"],"tags":["mise","bootstrap","remote","host-selection","tags"],"backgroundTag":"no-target-selected","analyzedSha":"9dcfcaa0dc8747a2577d3270b69bb9d8313b2807","analyzedAt":"2026-08-17T14:28:50.624Z","schemaVersion":2},"datasetVersion":"2026-08-21T18:17:14.833Z"}