jdx/mise · error
history is disabled (history.enabled = false)
Error message
history is disabled (history.enabled = false)
What it means
Thrown by the dotfiles `save` command when history is disabled (`history.enabled = false` in settings). Saving captured dotfile edits into history requires the history feature, so the command aborts with the setting named in the message.
Source
Thrown at src/cli/dotfiles/save.rs:73
match self.capture(store, tracked, draft) {
Ok(()) => Ok(()),
Err(err) if self.best_effort => {
warn!("history save: {err:#}");
Ok(())
}
Err(err) => Err(err),
}
}
async fn save(self) -> Result<()> {
let trigger = match self.trigger.as_str() {
"save" => Trigger::Save,
"agent" => Trigger::Agent,
"update" => Trigger::Update,
other => bail!("unknown trigger {other:?}; use save, agent, or update"),
};
if !crate::config::Settings::get().history.enabled {
bail!("history is disabled (history.enabled = false)");
}
let (store, tracked, entries) = super::history::open().await?;
if !self.paths.is_empty() {
let walk = tracked.walk()?;
for path in &self.paths {
let path = normalize_target(path);
let captured = walk.files.keys().any(|file| file.starts_with(&path));
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 {View on GitHub (pinned to afd2eddd3a)
Solutions
- Enable history: set `history.enabled = true` in mise settings
- Verify with `mise settings get history.enabled` before calling save
- Remove or guard the save call in scripts when history is intentionally disabled
Example fix
// before (config.toml) [history] enabled = false // after [history] enabled = true
Defensive patterns
Strategy: validation
Validate before calling
[ "$(mise settings get history.enabled)" = "true" ] || { echo "enable history first" >&2; exit 1; }
mise bootstrap dotfiles save --trigger save Prevention
- Check history.enabled before calling save from automation
- Keep history enabled on machines that use dotfiles save
- Guard scheduled save jobs to no-op when history is disabled
When it happens
Trigger: Running `mise bootstrap dotfiles save` (any trigger) while `Settings::get().history.enabled` is false.
Common situations: Users who disabled history for disk space or privacy but still call save from scripts/automation; configs where history.enabled was set false after previously using dotfiles save.
Related errors
- history is disabled (history.enabled = false)
- history is disabled (history.enabled = false)
- {bin_name} is a mise bin however it is not currently active.
- [dotfiles]."{}": source does not exist: {}
- [dotfiles]."{}": mode symlink-each requires a directory sour
AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09).
Data as JSON: /api/errors/dac1dc32e00f90b2.
Report an issue: GitHub.