{"record":{"id":"8f198479afe59df6","repo":"jdx/mise","slug":"history-is-disabled-history-enabled-false-8f1984","errorCode":null,"errorMessage":"history is disabled (history.enabled = false)","messagePattern":"history is disabled \\(history\\.enabled = false\\)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/cli/dotfiles/sync.rs","lineNumber":41,"sourceCode":"    #[usage(long)]\n    best_effort: bool,\n}\n\nimpl DotfilesSync {\n    pub(crate) async fn run(self) -> Result<()> {\n        match self.sync().await {\n            Ok(()) => Ok(()),\n            Err(err) if self.best_effort && is_network_failure(&err) => {\n                warn!(\"history sync: {err:#}\");\n                Ok(())\n            }\n            Err(err) => Err(err),\n        }\n    }\n\n    async fn sync(&self) -> Result<()> {\n        if !crate::config::Settings::get().history.enabled {\n            bail!(\"history is disabled (history.enabled = false)\");\n        }\n        let (store, tracked, _) = super::history::open().await?;\n        if let Some(reason) = store.unavailable() {\n            bail!(\"cannot synchronize: {reason}\");\n        }\n        let outcome = run::sync(&store, &tracked, &SyncRequest::new(self.fetch_only))?;\n        crate::system::history::sync::origin::report(&outcome);\n        Ok(())\n    }\n}\n\nfn is_network_failure(error: &eyre::Report) -> bool {\n    error\n        .downcast_ref::<crate::system::history::sync::network::NetworkError>()\n        .is_some()\n}\n\n#[cfg(test)]","sourceCodeStart":23,"sourceCodeEnd":59,"githubUrl":"https://github.com/jdx/mise/blob/afd2eddd3a50c16190efc1c7e94404b48f72af57/src/cli/dotfiles/sync.rs#L23-L59","documentation":"`mise bootstrap dotfiles sync` requires the history subsystem, which is disabled when the setting `history.enabled = false`. Sync reads and writes the checkpoint store, so it refuses to run when history is turned off.","triggerScenarios":"Running the dotfiles sync command while the mise setting `history.enabled` is false in settings (global or project settings).","commonSituations":"User (or a shared mise.toml) disabled history to reduce overhead, then later tries to sync dotfiles.","solutions":["Enable history: `mise settings set history.enabled true`, then retry sync","If history must stay disabled, do not use dotfiles sync (manage files manually)"],"exampleFix":"// before\n# settings: history.enabled = false\nmise bootstrap dotfiles sync  // fails\n// after\nmise settings set history.enabled true\nmise bootstrap dotfiles sync","handlingStrategy":"validation","validationCode":"[ \"$(mise settings get history.enabled)\" = \"true\" ] || mise settings set history.enabled true","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Check `mise settings | grep history` before using dotfiles history commands","Document history.enabled=true as a prerequisite in team dotfiles workflows","Audit shared mise.toml files that disable history"],"tags":["cli","dotfiles","config","settings"],"backgroundTag":"feature-not-enabled","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"}