jdx/mise · error

unknown trigger {trigger:?}

Error message

unknown trigger {trigger:?}

What it means

`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>".

Source

Thrown at src/cli/dotfiles/history/ls.rs:61

                .into_iter()
                .map(|(_, pending)| crate::system::history::store::Entry {
                    id: pending.id,
                    commit: String::new(),
                    checkpoint: pending.checkpoint,
                })
                .collect();
        }
        entries.reverse();
        if let Some(label) = &self.label {
            entries.retain(|entry| entry.checkpoint.labels.contains(label));
        }
        if let Some(path) = &self.path {
            let path = display_arg(path);
            entries.retain(|entry| entry.checkpoint.changes.touches(&path));
        }
        if let Some(trigger) = &self.trigger {
            let Some(trigger) = Trigger::parse(trigger) else {
                eyre::bail!("unknown trigger {trigger:?}");
            };
            entries.retain(|entry| entry.checkpoint.trigger == trigger);
        }
        if self.limit > 0 {
            entries.truncate(self.limit);
        }
        if self.json {
            miseprintln!("{}", serde_json::to_string_pretty(&entries)?);
            return Ok(());
        }
        if entries.is_empty() {
            info!("no history checkpoints recorded");
            return Ok(());
        }
        let mut table = MiseTable::new(false, &["ID", "When", "Trigger", "Description", "Files"]);
        for entry in &entries {
            let checkpoint = &entry.checkpoint;
            let files = if checkpoint.tree.available {

View on GitHub (pinned to afd2eddd3a)

Solutions

  1. Check the accepted trigger names in `mise bootstrap dotfiles history ls --help`.
  2. Use the exact trigger identifier shown in history output (e.g. from `history ls` entries).
  3. Omit `--trigger` to see all entries and inspect which trigger values actually occur.

Example fix

// before
mise bootstrap dotfiles history ls --trigger Edit
// after
mise bootstrap dotfiles history ls --trigger edit  # exact enum name per --help
Defensive patterns

Strategy: validation

Validate before calling

# check the trigger value against known names before filtering
mise bootstrap dotfiles history ls | grep -o 'trigger: [a-z-]*' | sort -u
case "$trigger" in edit|save|apply|capture) : ;; *) echo "unknown trigger: $trigger"; exit 1;; esac

Prevention

When it happens

Trigger: 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).

Common situations: Typos (`--trigger edit` vs the real name), guessing trigger names without checking docs, using capitalized or plural forms.

Understand the failure class

Background: Invalid enum value errors: "Unknown type", "Invalid scope", "must be one of" — when a string is not on the library's allowed list — this error's family across 23 libraries.

Related errors


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