jdx/mise · error

no task {} found Did you mean one of these? - {task_name}

Error message

no task {} found

Did you mean one of these?
  - {task_name}

Did you mean the command:
  mise {cmd_name}

What it means

When a named task does not exist but mise found close matches among defined tasks and/or a similar mise subcommand, err_no_task builds a rich 'no task <name> found' error listing suggested task names and the possible command. It helps you correct a misspelled task name.

Source

Thrown at src/task/task_list.rs:384

    let similar = similar_tasks(name, &tasks_for_error);
    if !similar.is_empty() {
        err_msg.push_str("\n\nDid you mean one of these?");
        for task_name in similar {
            err_msg.push_str(&format!("\n  - {}", task_name));
        }
    }

    if !similar_cmds.is_empty() {
        err_msg.push_str("\n\nDid you mean the command:");
        for cmd_name in &similar_cmds {
            err_msg.push_str(&format!("\n  mise {cmd_name}"));
        }
    }

    append_available_tasks(&mut err_msg, &tasks_for_error, showing_all_tasks);

    bail!(err_msg);
}

/// Prompt the user to select a task interactively
async fn prompt_for_task(config: &Arc<Config>, load_all: bool) -> Result<Task> {
    let ctx = load_all.then(TaskLoadContext::all);
    let tasks = config.tasks_with_context(ctx.as_ref()).await?;
    ensure!(
        !tasks.is_empty(),
        "no tasks defined. see {url}",
        url = style::eunderline("https://mise.jdx.dev/tasks/")
    );
    let theme = crate::ui::theme::get_theme();
    let mut s = Select::new("Tasks")
        .description("Select a task to run")
        .filtering(true)
        .filterable(true)
        .theme(&theme);
    for t in tasks.values().filter(|t| !t.hide) {

View on GitHub (pinned to afd2eddd3a)

Solutions

  1. Use one of the suggested task names printed in the error (e.g. `mise run build`)
  2. Run `mise tasks` to list all valid task names
  3. Update scripts/CI that reference the old or misspelled task name

Example fix

# before
mise run buidl

# after
mise run build
Defensive patterns

Strategy: validation

Validate before calling

mise tasks ls --json | jq -e --arg t "$TASK" 'any(.[]; .name == $t)' || echo "typo? task $TASK not found"

Prevention

When it happens

Trigger: Running `mise run <typo>` where <typo> is similar to an existing task name (e.g. `mise run buidl` when `build` exists) or to a mise command; append_available_tasks adds the 'Did you mean one of these?' list.

Common situations: Typos in task names; renamed tasks in mise.toml while scripts still use old names; muscle memory from another project's task names; confusion between a mise subcommand and a project task.

Understand the failure class

Background: Record Not Found Errors: "not found", RecordNotFound, and "was not found" — what they mean and how to fix them — this error's family across 28 libraries.

Related errors


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