{"record":{"id":"af227d82f6b997dd","repo":"jdx/mise","slug":"bootstrap-from-repository-failed-with-status","errorCode":null,"errorMessage":"bootstrap from repository failed with {status}","messagePattern":"bootstrap from repository failed with (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/cli/bootstrap.rs","lineNumber":2011,"sourceCode":"\n                if let Some(file_name) = crate::env::MISE_GLOBAL_CONFIG_FILE\n                    .as_deref()\n                    .and_then(Path::file_name)\n                {\n                    command.env(\"MISE_GLOBAL_CONFIG_FILE\", checkout.join(file_name));\n                }\n            }\n        }\n\n        let mut trusted = std::env::split_paths(\n            &std::env::var_os(\"MISE_TRUSTED_CONFIG_PATHS\").unwrap_or_default(),\n        )\n        .collect::<Vec<_>>();\n        trusted.push(checkout);\n        command.env(\"MISE_TRUSTED_CONFIG_PATHS\", std::env::join_paths(trusted)?);\n        let status = command.status()?;\n        if !status.success() {\n            bail!(\"bootstrap from repository failed with {status}\");\n        }\n        Ok(())\n    }\n\n    async fn run_hooks(\n        &self,\n        config: &Config,\n        hooks: &[hooks::BootstrapHook],\n        phase: BootstrapHookPhase,\n    ) -> Result<()> {\n        // Recorded before the hooks run: a hook that fails may still have\n        // changed the machine.\n        run_bootstrap_hooks(config, hooks, phase, self.dry_run).await\n    }\n\n    fn skip_parts(&self) -> HashSet<BootstrapPart> {\n        if self.only.is_empty() {\n            self.skip.iter().copied().collect()","sourceCodeStart":1993,"sourceCodeEnd":2029,"githubUrl":"https://github.com/jdx/mise/blob/afd2eddd3a50c16190efc1c7e94404b48f72af57/src/cli/bootstrap.rs#L1993-L2029","documentation":"Thrown when the child bootstrap process spawned from a repository checkout (run via `run_child_bootstrap`) exits with a non-zero status. mise passes the checkout path in `MISE_TRUSTED_CONFIG_PATHS`, runs the command, and if `status.success()` is false it reports the raw exit status so the underlying failure can be diagnosed.","triggerScenarios":"The child `mise bootstrap` process launched against the trusted repository checkout exits non-zero — e.g. the bootstrapped config fails to parse, an install script fails, or the child itself bails on any bootstrap error.","commonSituations":"Broken or untrusted dotfiles repository contents; a bootstrap hook/task failing during the fresh-machine run; missing tools referenced by the bootstrap config; network failure while the child fetches tools.","solutions":["Re-run with `MISE_DEBUG=1` to see the child's detailed output and find the underlying failure.","Inspect the child output printed before this error — the status shown (exit code) points to which step failed.","Fix the failing task/config in the bootstrap repository, then re-run `mise bootstrap --from <repo>`.","Verify the repository contents work by running its tasks manually before bootstrapping from it."],"exampleFix":"// diagnose the underlying child failure\n// before\nmise bootstrap --from git@github.com:me/dotfiles.git\n// bootstrap from repository failed with exit status: 1\n// after\nMISE_DEBUG=1 mise bootstrap --from git@github.com:me/dotfiles.git","handlingStrategy":"retry","validationCode":"# validate the repo checkout's configs are parseable first\nMISE_DEBUG=1 mise bootstrap --from \"$REPO\" --dry-run 2>&1 | tee /tmp/bootstrap.log","typeGuard":null,"tryCatchPattern":"if ! mise bootstrap --from \"$REPO\"; then\n  echo \"child bootstrap failed; inspect output above and fix the repo\" >&2\n  exit 1\nfi","preventionTips":["Test the bootstrap repository in a VM/container before using it on real machines","Keep tasks/hooks in the bootstrap repo idempotent and fail-fast with clear messages","Ensure all tools referenced by the bootstrap config are installable on the target"],"tags":["bootstrap","subprocess","exit-code"],"backgroundTag":"command-not-found","analyzedSha":"afd2eddd3a50c16190efc1c7e94404b48f72af57","analyzedAt":"2026-09-09T01:38:25.179Z","contentChangedAt":"2026-09-09T01:38:25.179Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}