jdx/mise · error

history is disabled (history.enabled = false)

Error message

history is disabled (history.enabled = false)

What it means

`mise bootstrap dotfiles origin set` configures how dotfiles history/edits sync with a remote origin. This feature depends on the checkpoint history subsystem, which can be turned off via the `history.enabled` setting. If history is disabled, mise throws "history is disabled (history.enabled = false)" because origin sync cannot function without it.

Source

Thrown at src/cli/dotfiles/origin.rs:83

                            origin.branch,
                            crate::file::display_path(&path),
                            SyncMode::current()?.as_str()
                        );
                    }
                    None => miseprintln!(
                        "no setup repository is connected; `mise bootstrap dotfiles origin set <url>` connects one"
                    ),
                }
                Ok(())
            }
        }
    }
}

impl DotfilesOriginSet {
    async fn run(self) -> Result<()> {
        if !crate::config::Settings::get().history.enabled {
            bail!("history is disabled (history.enabled = false)");
        }
        let mode = match self.sync.as_deref() {
            Some(mode) => SyncMode::parse(mode)?,
            None if self.yes || crate::config::Settings::get().yes => SyncMode::current()?,
            None => match crate::ui::prompt::confirm_with_default(
                "Automatically publish saved edits AND apply incoming changes to live files? Choose no for manual sharing; local autosave continues in either mode.",
                false,
            )? {
                crate::ui::prompt::Confirmation::Yes => SyncMode::Sync,
                crate::ui::prompt::Confirmation::No => SyncMode::Manual,
                crate::ui::prompt::Confirmation::Unavailable => {
                    bail!(
                        "not connected: choose --sync manual, --sync sync, or --sync fetch-only to connect without a mode prompt"
                    );
                }
            },
        };
        let (store, tracked, _) = super::history::open().await?;

View on GitHub (pinned to afd2eddd3a)

Solutions

  1. Enable history in settings: `mise settings set history.enabled true` (or set it in settings.toml), then retry.
  2. If history must stay disabled, use alternative sharing (manually copy the dotfile source files) instead of origin sync.
  3. Check current value with `mise settings get history.enabled` to confirm the cause.

Example fix

// before (settings.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: mise settings set history.enabled true"; exit 1; }

Prevention

When it happens

Trigger: Running `mise bootstrap dotfiles origin set ...` (DotfilesOriginSet::run) while `Settings::get().history.enabled` is false in the user's settings.

Common situations: Users who disabled dotfiles history for privacy/disk reasons and later try to configure origin sync; settings inherited from a managed/default settings.toml that turns history off.

Related errors


AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09). Data as JSON: /api/errors/8f5b5982e450b7d2. Report an issue: GitHub.