{"record":{"id":"6604e2681fc8a303","repo":"jdx/mise","slug":"no-tasks-found","errorCode":null,"errorMessage":"no tasks {} found","messagePattern":"no tasks (.+?) found","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/task/task_list.rs","lineNumber":415,"sourceCode":"    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) {\n        // Truncate description to first line only, like tasks ls does\n        let desc = t.description.lines().next().unwrap_or_default();\n        s = s.option(\n            DemandOption::new(&t.name)\n                .label(&t.display_name)\n                .description(desc),\n        );\n    }\n    ctrlc::show_cursor_after_ctrl_c();\n    match s.run() {\n        Ok(name) => match tasks.get(name) {\n            Some(task) => Ok(task.clone()),\n            None => bail!(\"no tasks {} found\", style::ered(name)),\n        },\n        Err(err) => {\n            Term::stderr().show_cursor()?;\n            Err(eyre!(err))\n        }\n    }\n}\n\n/// Get a list of tasks to run from command-line arguments\n/// Handles task patterns, monorepo paths, and interactive selection\npub(crate) async fn get_task_lists(\n    config: &Arc<Config>,\n    args: &[String],\n    prompt: bool,\n    only: bool,\n    prompt_all: bool,\n) -> Result<Vec<Task>> {\n    if prompt_all {","sourceCodeStart":397,"sourceCodeEnd":433,"githubUrl":"https://github.com/jdx/mise/blob/533346cc374382b41ec5ff70536252b2e96e725c/src/task/task_list.rs#L397-L433","documentation":"prompt_for_task shows an interactive task picker, and after the user selects a name it looks the name up in the loaded task map. If the selection's name does not resolve to a task in `tasks` (e.g. the list was stale relative to the map), mise bails with \"no tasks <name> found\". It is a lookup failure for a task identifier that was just presented or typed.","triggerScenarios":"Running a command that prompts for task selection (via get_task_lists → prompt_for_task), and the name returned by the interactive selector `s.run()` is not a key in the loaded `tasks` map — e.g. selecting an invalid/raw entry, typing a custom name in a fuzzy finder, or the task list being filtered differently from the map.","commonSituations":"Typing a task name that no longer exists into an interactive picker; task defined in a config file that failed to load into the map; monorepo scoping causing the selected name to differ from the registered task key; stale cache after editing mise.toml.","solutions":["Verify the task name exists: run `mise tasks` and use an exact name from that list","Re-run with the fully qualified task name (e.g. `//pkg:task` in monorepos) instead of a partial name","Check that the mise.toml defining the task is trusted and loaded (mise trust)","Clear stale state and retry: `mise cache clear` then re-run"],"exampleFix":"// before (typed in picker)\nmise run  # select \"bld\" -> no tasks bld found\n// after\nmise tasks   # find real name\nmise run build","handlingStrategy":"validation","validationCode":"mise tasks | grep -Fx 'my-task' || echo 'task missing; use exact name from mise tasks'","typeGuard":null,"tryCatchPattern":"if ! mise tasks | grep -qx \"$TASK\"; then echo \"task '$TASK' not found\" >&2; exit 1; fi; mise run \"$TASK\"","preventionTips":["Always copy task names from `mise tasks` output","Prefer direct `mise run <task>` over interactive selection in scripts","Re-check task names after editing mise.toml files","In monorepos use fully qualified '//pkg:task' names"],"tags":["tasks","cli","lookup-failure"],"backgroundTag":"record-not-found","analyzedSha":"533346cc374382b41ec5ff70536252b2e96e725c","analyzedAt":"2026-09-17T13:35:38.149Z","contentChangedAt":"2026-09-17T13:35:38.149Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}