jdx/mise · error
{} is not captured; {reason}
Error message
{} is not captured; {reason} What it means
`mise bootstrap dotfiles save` refuses to save a path that is not part of the dotfiles capture set. The tracked-set lookup found no entry for the path, so mise tells you either that the path is excluded/missing/omitted from capture, or that it has never been tracked at all. This guards the checkpoint store from capturing files the user never enrolled.
Source
Thrown at src/cli/dotfiles/save.rs:99
if !captured {
// saving a deleted manual-save path saves the deletion,
// provided the path was captured before (a path that
// never existed is not a deletion)
let deletion = tracked
.entry_for(&path)
.is_some_and(|entry| !entry.policy.autosave)
&& std::fs::symlink_metadata(&path)
.is_err_and(|err| err.kind() == std::io::ErrorKind::NotFound)
&& previously_captured(&store, &entries, &path)?;
if deletion {
continue;
}
let reason = if tracked.entry_for(&path).is_some() {
"it is excluded, missing, or omitted from capture"
} else {
"track it with `mise bootstrap dotfiles track`"
};
bail!("{} is not captured; {reason}", display_path(&path));
}
}
}
let mut draft = Draft::new(trigger);
draft.explicit_paths = self
.paths
.iter()
.map(|path| normalize_target(path))
.collect();
draft.description = self.description.clone();
draft.description_source = Some(if trigger == Trigger::Agent {
DescriptionSource::Agent
} else {
DescriptionSource::User
});
draft.task = self.task.clone();
draft.labels = self.label.clone();
tokio::task::spawn_blocking(move || self.save_checkpoint(&store, &tracked, draft)).await?View on GitHub (pinned to afd2eddd3a)
Solutions
- Track the path first with `mise bootstrap dotfiles track <path>`, then save
- Check `mise bootstrap dotfiles status` to see which files are captured
- Verify the path spelling matches the tracked entry exactly
Example fix
// before mise bootstrap dotfiles save ~/.zshrc // fails if untracked // after mise bootstrap dotfiles track ~/.zshrc mise bootstrap dotfiles save ~/.zshrc
Defensive patterns
Strategy: validation
Validate before calling
mise bootstrap dotfiles status --target "$path" || mise bootstrap dotfiles track "$path"
Prevention
- Always `dotfiles track` a file before attempting to save it
- Check `dotfiles status` output to confirm capture set membership
- Avoid relying on capture filters that may exclude recently added files
When it happens
Trigger: Running `mise bootstrap dotfiles save <path>` (or with explicit paths) where the path has no entry in the TrackedSet: it was never added via `dotfiles track`, it was excluded by capture filters, or the file is missing on disk.
Common situations: User edits a new dotfile (e.g. ~/.config/newtool/config) and tries to save it without tracking first; a path was removed from the tracked set; a typo in the path means no entry matches.
Understand the failure class
Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.
Related errors
- --changed does not accept target arguments
- at least one target or --changed is required
- --source can only be used with one target
- `--mode track` tracks a file where it is and takes no source
- --changed requires trusted configuration: {}
AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09).
Data as JSON: /api/errors/211cd2933aa4a597.
Report an issue: GitHub.