{"record":{"id":"34c0a7f4727fcd8c","repo":"jdx/mise","slug":"no-remote-targets-configured-pass-host-user-h","errorCode":null,"errorMessage":"no remote targets configured; pass --host [user@]host or add [bootstrap.remote.hosts]","messagePattern":"no remote targets configured; pass --host \\[user@\\]host or add \\[bootstrap\\.remote\\.hosts\\]","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/cli/bootstrap.rs","lineNumber":2337,"sourceCode":"    async fn run(self) -> Result<()> {\n        if self.connect_timeout == 0 {\n            bail!(\"--connect-timeout must be greater than zero\");\n        }\n        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,","sourceCodeStart":2319,"sourceCodeEnd":2355,"githubUrl":"https://github.com/jdx/mise/blob/9dcfcaa0dc8747a2577d3270b69bb9d8313b2807/src/cli/bootstrap.rs#L2319-L2355","documentation":"BootstrapRemote::run (src/cli/bootstrap.rs:2337) builds its inventory from [bootstrap.remote.hosts] in the loaded config; if that inventory is empty and no --host was passed, there is nothing to select and mise bails, telling you the two ways to supply a target.","triggerScenarios":"'mise bootstrap remote' with no --host and no [bootstrap.remote.hosts] table in any loaded mise.toml; running outside the project directory so the config defining hosts never loads; hosts written under a wrong TOML key.","commonSituations":"First run before any remote host is configured; wrong cwd (or MISE_CONFIG_FILE not set) so the config set is empty; schema drift from docs (e.g. [bootstrap.hosts] instead of [bootstrap.remote.hosts]).","solutions":["Pass an ad-hoc target: 'mise bootstrap remote --host user@hostname'","Add hosts under the exact table [bootstrap.remote.hosts.<name>] in mise.toml with host/user/source fields","Run from the directory whose mise.toml defines the hosts, or point MISE_CONFIG_FILE at it","Confirm the config loads: 'mise config' should list the file"],"exampleFix":"# before: no hosts configured anywhere\nmise bootstrap remote\n# Error: no remote targets configured; pass --host [user@]host or add [bootstrap.remote.hosts]\n\n# after: mise.toml\n[bootstrap.remote.hosts.web1]\nhost = 'web1.example.com'\nuser = 'deploy'\n\nmise bootstrap remote web1","handlingStrategy":"validation","validationCode":"# bash: require either --host or a configured inventory before running\nif [ -z \"$HOST_ARG\" ] && ! grep -q 'bootstrap\\.remote\\.hosts' mise.toml 2>/dev/null; then\n  echo 'no remote targets configured; pass --host or add [bootstrap.remote.hosts]' >&2\n  exit 1\nfi","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Commit a [bootstrap.remote.hosts] skeleton to the repo bootstrap config","Run remote bootstrap from the directory containing mise.toml"],"tags":["mise","bootstrap","remote","configuration","first-run"],"backgroundTag":"missing-remote-host-configuration","analyzedSha":"9dcfcaa0dc8747a2577d3270b69bb9d8313b2807","analyzedAt":"2026-08-17T14:28:50.624Z","schemaVersion":2},"datasetVersion":"2026-08-21T13:17:26.733Z"}