jdx/mise · error
cannot order missing bootstrap resource
Error message
cannot order missing bootstrap resource '{resource}' What it means
BootstrapPlan::add_ordering records an `order_after` edge controlling phase ordering. Like add_dependency, it validates the target resource exists; ordering against an undeclared id bails with this error. It exists to keep the ordering graph closed over declared resources.
Solutions
- Check the ordering entry's resource id against the declared ids in your bootstrap config.
- Fix the typo or declare the missing resource.
- Remove the ordering entry if the predecessor no longer exists.
- Re-run the bootstrap plan to verify ordering resolves.
Example fix
# before [[bootstrap.resources]] id = "dotfiles" order_after = ["pakages"] # typo # after [[bootstrap.resources]] id = "dotfiles" order_after = ["packages"]
Defensive patterns
Strategy: validation
Validate before calling
# Verify every order_after id is declared for dep in $(grep -oP '(?<=order_after = \[")[^"]+' mise.toml); do grep -q "id = \"$dep\"" mise.toml || echo "missing resource: $dep" done
Prevention
- Update ordering entries whenever resource ids change.
- Keep ordering references consistent with declared ids via a shared naming convention.
- Avoid conditional configs that can drop a resource still referenced by order_after.
- Dry-run the plan before applying.
When it happens
Trigger: `mise bootstrap` planning where an ordering directive references a resource id that was never inserted into the plan (typo or removed resource).
Common situations: Reordering phases after renaming ids; declaring an order_after pointing at a resource defined in a config file that isn't loaded; manual edits to bootstrap config order entries.
Understand the failure class
Background: "not installed", "pip install", "required for": how missing-dependency errors surface across open-source libraries — this error's family across 34 libraries.
Related errors
- [bootstrap].config_roots did not match any config roots
- bootstrap resource ' ' depends on missing resource
- bootstrap resource ' ' is declared more than once
- bootstrap users and groups are only supported on Linux
- bootstrap users and groups are only supported on Linux
AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17).
Data as JSON: /api/errors/2de265da61b070e1.
Report an issue: GitHub.
Appendix: source
Thrown at src/system/resources.rs:254
};
if !resource.depends_on.contains(&dependency) {
resource.depends_on.push(dependency);
}
Ok(())
}
pub(crate) fn output(&self) -> Result<BootstrapPlanOutput<'_>> {
let resources = self.ordered()?;
let mut summary = PlanSummary::default();
for resource in &resources {
summary.add(resource.action);
}
Ok(BootstrapPlanOutput { resources, summary })
}
fn add_ordering(&mut self, resource: &ResourceId, predecessor: ResourceId) -> Result<()> {
let Some(resource) = self.resources.get_mut(resource) else {
bail!("cannot order missing bootstrap resource '{resource}'");
};
if !resource.order_after.contains(&predecessor) {
resource.order_after.push(predecessor);
}
Ok(())
}
fn ordered(&self) -> Result<Vec<&ResourcePlan>> {
let mut incoming = self
.resources
.keys()
.cloned()
.map(|id| (id, 0_usize))
.collect::<IndexMap<_, _>>();
let mut outgoing: HashMap<ResourceId, Vec<ResourceId>> = HashMap::new();
for resource in self.resources.values() {
for dependency in resource.depends_on.iter().chain(&resource.order_after) {View on GitHub (pinned to 533346cc37)