{"record":{"id":"db6055da2097cb7f","repo":"jdx/mise","slug":"the-setup-from-url-is-paused-nothing-was-bootst","errorCode":null,"errorMessage":"the setup from {url} is paused; nothing was bootstrapped. `mise bootstrap dotfiles status` lists the paths that need attention; resolve them with `mise bootstrap dotfiles pull`, then run `mise bootstrap`","messagePattern":"the setup from (.+?) is paused; nothing was bootstrapped\\. `mise bootstrap dotfiles status` lists the paths that need attention; resolve them with `mise bootstrap dotfiles pull`, then run `mise bootstrap`","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/cli/bootstrap.rs","lineNumber":1897,"sourceCode":"        // configuration directory: its branch goes into mise's own store and\n        // its files are written by the same recoverable pull as any other\n        // incoming change; the ordinary bootstrap then runs from them\n        if let Some(url) = expanded.as_deref()\n            && let Some(outcome) =\n                system::history::sync::onboard::from_git(url, self.yes, self.dry_run).await?\n        {\n            if self.dry_run {\n                if let Some(preview) = outcome.preview_config.as_ref() {\n                    self.run_child_bootstrap(preview.path().to_path_buf())\n                        .await?;\n                }\n                return Ok(());\n            }\n            // the configuration that arrived is what to bootstrap from; one\n            // held for a decision leaves the existing one, whose tasks and\n            // installations are not what was asked for\n            if outcome.setup_held {\n                bail!(\n                    \"the setup from {url} is paused; nothing was bootstrapped. `mise bootstrap dotfiles status` lists the paths that need attention; resolve them with `mise bootstrap dotfiles pull`, then run `mise bootstrap`\"\n                );\n            }\n            let config_dir = system::history::tracked::global_config_dir();\n            self.run_child_bootstrap(config_dir).await?;\n            if !outcome.durable_access {\n                warn!(\"ongoing synchronization still needs credentials on this host (see above)\");\n            }\n            return Ok(());\n        }\n        let (url, checkout) = if let Some(url) = expanded.as_deref() {\n            let checkout = crate::env::MISE_GLOBAL_CONFIG_FILE\n                .as_deref()\n                .map(|path| {\n                    path.parent()\n                        .filter(|parent| !parent.as_os_str().is_empty())\n                        .unwrap_or_else(|| Path::new(\".\"))\n                })","sourceCodeStart":1879,"sourceCodeEnd":1915,"githubUrl":"https://github.com/jdx/mise/blob/afd2eddd3a50c16190efc1c7e94404b48f72af57/src/cli/bootstrap.rs#L1879-L1915","documentation":"Thrown by `mise bootstrap dotfiles pull` when the pull operation succeeded but the fetched setup is marked as held (paused, e.g. awaiting a decision on a conflicting configuration), so nothing was actually bootstrapped. The error halts the flow and points the user at `bootstrap dotfiles status` to inspect and resolve the pending paths before re-running the bootstrap.","triggerScenarios":"Running `mise bootstrap` (via the dotfiles pull path) when `outcome.setup_held` is true — the remote configuration that arrived is paused pending a decision, so the existing configuration is kept and no bootstrap child process is started.","commonSituations":"A dotfiles setup previously paused via `mise bootstrap dotfiles` decision workflows; a conflict between the incoming and existing configuration left unresolved; resuming bootstrap on a new machine where the setup was held from a prior session.","solutions":["Run `mise bootstrap dotfiles status` to list the paths that need attention.","Resolve each held path with `mise bootstrap dotfiles pull` (accept/decide the pending configuration).","Re-run `mise bootstrap` once the status shows no held setup.","If the held setup is unwanted, reset/discard the paused decision via the dotfiles subcommands before bootstrapping."],"exampleFix":"// before (fails while setup is held)\nmise bootstrap\n// after\nmise bootstrap dotfiles status\nmise bootstrap dotfiles pull\nmise bootstrap","handlingStrategy":"try-catch","validationCode":"mise bootstrap dotfiles status | grep -q 'held\\|paused' && { mise bootstrap dotfiles pull; }","typeGuard":null,"tryCatchPattern":"if ! mise bootstrap; then\n  mise bootstrap dotfiles status\n  mise bootstrap dotfiles pull\n  mise bootstrap\nfi","preventionTips":["Check `mise bootstrap dotfiles status` before bootstrapping","Resolve pending dotfiles decisions promptly instead of leaving setups paused","Automate pull-and-resolve before bootstrap in provisioning scripts"],"tags":["bootstrap","dotfiles","paused-state"],"backgroundTag":"invalid-state-transition","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"}