{"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/afd2eddd3a50c16190efc1c7e94404b48f72af57/src/task/task_list.rs#L397-L433","documentation":"After an interactive task-selection prompt (prompt_for_task) returns a chosen name, mise looks it up in the task map; if the selection is stale or unknown it throws 'no tasks <name> found'. This is a guard against the fuzzy-finder returning a name that no longer resolves to a task.","triggerScenarios":"Selecting an entry in the interactive `mise run` task picker whose name is no longer in the loaded task map — e.g. task files changed while the picker was open, or the picker returned an unnormalized name.","commonSituations":"Editing/renaming task files in another terminal while the picker was open; picker fed names from a broader (load_all) listing than the final task map; race between listing and selection.","solutions":["Rerun the command so the task list is refreshed, then select again","Verify the task still exists with `mise tasks`","If tasks were edited concurrently, retry after the edits are saved"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":"mise tasks ls --json | jq -e --arg t \"$TASK\" 'any(.[]; .name == $t)'","typeGuard":null,"tryCatchPattern":"task=$(mise run 2>&1) || mise run \"$TASK\"  # retry to refresh a stale picker list","preventionTips":["Avoid editing task files while the interactive picker is open","Rerun the picker after task changes","Verify the selected task exists with `mise tasks`"],"tags":["tasks","interactive","not-found","race-condition"],"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"}