{"record":{"id":"f3c79ca5b5e0650b","repo":"jdx/mise","slug":"unknown-trigger-trigger","errorCode":null,"errorMessage":"unknown trigger {trigger:?}","messagePattern":"unknown trigger (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/cli/dotfiles/history/ls.rs","lineNumber":61,"sourceCode":"                .into_iter()\n                .map(|(_, pending)| crate::system::history::store::Entry {\n                    id: pending.id,\n                    commit: String::new(),\n                    checkpoint: pending.checkpoint,\n                })\n                .collect();\n        }\n        entries.reverse();\n        if let Some(label) = &self.label {\n            entries.retain(|entry| entry.checkpoint.labels.contains(label));\n        }\n        if let Some(path) = &self.path {\n            let path = display_arg(path);\n            entries.retain(|entry| entry.checkpoint.changes.touches(&path));\n        }\n        if let Some(trigger) = &self.trigger {\n            let Some(trigger) = Trigger::parse(trigger) else {\n                eyre::bail!(\"unknown trigger {trigger:?}\");\n            };\n            entries.retain(|entry| entry.checkpoint.trigger == trigger);\n        }\n        if self.limit > 0 {\n            entries.truncate(self.limit);\n        }\n        if self.json {\n            miseprintln!(\"{}\", serde_json::to_string_pretty(&entries)?);\n            return Ok(());\n        }\n        if entries.is_empty() {\n            info!(\"no history checkpoints recorded\");\n            return Ok(());\n        }\n        let mut table = MiseTable::new(false, &[\"ID\", \"When\", \"Trigger\", \"Description\", \"Files\"]);\n        for entry in &entries {\n            let checkpoint = &entry.checkpoint;\n            let files = if checkpoint.tree.available {","sourceCodeStart":43,"sourceCodeEnd":79,"githubUrl":"https://github.com/jdx/mise/blob/afd2eddd3a50c16190efc1c7e94404b48f72af57/src/cli/dotfiles/history/ls.rs#L43-L79","documentation":"`mise bootstrap dotfiles history ls --trigger <name>` filters checkpoint history entries by the operation that triggered them. The value is parsed into the `Trigger` enum; if the string is not a recognized trigger name, mise throws \"unknown trigger <value>\".","triggerScenarios":"Running `mise bootstrap dotfiles history ls --trigger <value>` with a value that `Trigger::parse` rejects — any string not matching a defined trigger (case-sensitive, no abbreviations).","commonSituations":"Typos (`--trigger edit` vs the real name), guessing trigger names without checking docs, using capitalized or plural forms.","solutions":["Check the accepted trigger names in `mise bootstrap dotfiles history ls --help`.","Use the exact trigger identifier shown in history output (e.g. from `history ls` entries).","Omit `--trigger` to see all entries and inspect which trigger values actually occur."],"exampleFix":"// before\nmise bootstrap dotfiles history ls --trigger Edit\n// after\nmise bootstrap dotfiles history ls --trigger edit  # exact enum name per --help","handlingStrategy":"validation","validationCode":"# check the trigger value against known names before filtering\nmise bootstrap dotfiles history ls | grep -o 'trigger: [a-z-]*' | sort -u\ncase \"$trigger\" in edit|save|apply|capture) : ;; *) echo \"unknown trigger: $trigger\"; exit 1;; esac","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Consult `--help` for the accepted trigger enum values.","Copy trigger names verbatim from `history ls` output."],"tags":["dotfiles","cli","invalid-argument"],"backgroundTag":"invalid-enum-value","analyzedSha":"afd2eddd3a50c16190efc1c7e94404b48f72af57","analyzedAt":"2026-09-09T01:38:25.179Z","contentChangedAt":"2026-09-09T01:38:25.179Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}