{"record":{"id":"2e6f83669f0a7bdf","repo":"jdx/mise","slug":"remote-bootstrap-failed-on-target-s","errorCode":null,"errorMessage":"remote bootstrap failed on {} target(s):\n  {}","messagePattern":"remote bootstrap failed on (.+?) target\\(s\\):\n  (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/cli/bootstrap.rs","lineNumber":3141,"sourceCode":"        for host in selected.values() {\n            if let Err(error) =\n                system::remote::run(host, &options, &mut artifacts, repository.as_ref()).await\n            {\n                if matches!(\n                    crate::exit::requested_exit_code(&error),\n                    Some(129 | 130 | 143)\n                ) {\n                    return Err(error);\n                }\n                error!(\"remote bootstrap failed on {}: {error:#}\", host.name);\n                failures.push(format!(\"{}: {error:#}\", host.name));\n                if self.fail_fast {\n                    break;\n                }\n            }\n        }\n        if !failures.is_empty() {\n            bail!(\n                \"remote bootstrap failed on {} target(s):\\n  {}\",\n                failures.len(),\n                failures.join(\"\\n  \")\n            );\n        }\n        info!(\"remote bootstrap completed on {} target(s)\", selected.len());\n        Ok(())\n    }\n}\n\nfn select_remote_inventory(\n    inventory: &indexmap::IndexMap<String, system::remote::RemoteHost>,\n    targets: &[String],\n    all: bool,\n    tags: &[String],\n) -> Result<indexmap::IndexMap<String, system::remote::RemoteHost>> {\n    let mut selected = indexmap::IndexMap::new();\n    for target in targets {","sourceCodeStart":3123,"sourceCodeEnd":3159,"githubUrl":"https://github.com/jdx/mise/blob/533346cc374382b41ec5ff70536252b2e96e725c/src/cli/bootstrap.rs#L3123-L3159","documentation":"After running bootstrap on each selected remote target (SSH execution), mise aggregates any per-target failures. If any target failed, the whole command exits with this error listing each failure, after honoring --fail-fast to stop early.","triggerScenarios":"One or more remote hosts returned a non-zero exit or connection error during bootstrap execution; failures vector is non-empty at the end of the loop.","commonSituations":"Unreachable hosts (network/VPN down), SSH auth failures, or the remote bootstrap itself failing (missing mise, bad remote config, failing hooks).","solutions":["Read the per-target failure lines to distinguish connection vs. bootstrap errors","Verify SSH connectivity/auth: ssh [user@]host works non-interactively","Ensure mise and required tools are installed on the failing remotes","Use --fail-fast to stop on the first failure while debugging, then rerun"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"ssh -o BatchMode=yes -o ConnectTimeout=5 user@host 'mise --version' # preflight each target","typeGuard":null,"tryCatchPattern":"try { await runRemoteBootstrap() } catch (e) { if (/remote bootstrap failed on/.test(e.message)) retryFailuresIndividually() }","preventionTips":["Preflight SSH connectivity to all targets","Use --fail-fast while iterating, then full runs in CI","Ensure mise is installed and on PATH on every remote"],"tags":["network","ssh","bootstrap","remote"],"backgroundTag":"network-request-failed","analyzedSha":"533346cc374382b41ec5ff70536252b2e96e725c","analyzedAt":"2026-09-17T13:35:38.149Z","contentChangedAt":"2026-09-17T13:35:38.149Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}