{"record":{"id":"15ebdb972a38012b","repo":"jdx/mise","slug":"no-task-found-did-you-mean-one-of-these","errorCode":null,"errorMessage":"no task {} found\n\nDid you mean one of these?\n  - {task_name}\n\nDid you mean the command:\n  mise {cmd_name}","messagePattern":"no task (.+?) found\n\nDid you mean one of these\\?\n  - (.+?)\n\nDid you mean the command:\n  mise (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/task/task_list.rs","lineNumber":384,"sourceCode":"\n    let similar = similar_tasks(name, &tasks_for_error);\n    if !similar.is_empty() {\n        err_msg.push_str(\"\\n\\nDid you mean one of these?\");\n        for task_name in similar {\n            err_msg.push_str(&format!(\"\\n  - {}\", task_name));\n        }\n    }\n\n    if !similar_cmds.is_empty() {\n        err_msg.push_str(\"\\n\\nDid you mean the command:\");\n        for cmd_name in &similar_cmds {\n            err_msg.push_str(&format!(\"\\n  mise {cmd_name}\"));\n        }\n    }\n\n    append_available_tasks(&mut err_msg, &tasks_for_error, showing_all_tasks);\n\n    bail!(err_msg);\n}\n\n/// Prompt the user to select a task interactively\nasync fn prompt_for_task(config: &Arc<Config>, load_all: bool) -> Result<Task> {\n    let ctx = load_all.then(TaskLoadContext::all);\n    let tasks = config.tasks_with_context(ctx.as_ref()).await?;\n    ensure!(\n        !tasks.is_empty(),\n        \"no tasks defined. see {url}\",\n        url = style::eunderline(\"https://mise.jdx.dev/tasks/\")\n    );\n    let theme = crate::ui::theme::get_theme();\n    let mut s = Select::new(\"Tasks\")\n        .description(\"Select a task to run\")\n        .filtering(true)\n        .filterable(true)\n        .theme(&theme);\n    for t in tasks.values().filter(|t| !t.hide) {","sourceCodeStart":366,"sourceCodeEnd":402,"githubUrl":"https://github.com/jdx/mise/blob/afd2eddd3a50c16190efc1c7e94404b48f72af57/src/task/task_list.rs#L366-L402","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","solutions":["Use one of the suggested task names printed in the error (e.g. `mise run build`)","Run `mise tasks` to list all valid task names","Update scripts/CI that reference the old or misspelled task name"],"exampleFix":"# before\nmise run buidl\n\n# after\nmise run build","handlingStrategy":"validation","validationCode":"mise tasks ls --json | jq -e --arg t \"$TASK\" 'any(.[]; .name == $t)' || echo \"typo? task $TASK not found\"","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Copy exact task names from `mise tasks` output","Update scripts when renaming tasks","Use shell completion for task names"],"tags":["tasks","typo","not-found","cli"],"backgroundTag":"record-not-found","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"}