jdx/mise · error · eyre::Report
Task not found: {}, use `mise tasks ls --all --hidden` to li
Error message
Task not found: {}, use `mise tasks ls --all --hidden` to list all tasks What it means
`mise tasks info <name>` found no task with that name: it was not in any loaded mise.toml/task file, and the fallback remote task fetcher (TaskFetcher, used for `owner/repo` style names) also returned nothing, so the code falls through to the bail in src/cli/tasks/info.rs:64. The message points you at `mise tasks ls --all --hidden` because hidden tasks and tasks from other config layers are invisible by default.
Source
Thrown at src/cli/tasks/info.rs:64
let task = matching.and_then(|m| m.first().cloned().cloned());
if let Some(task) = task {
// Resolve remote task files before displaying task info
let mut tasks = vec![task.clone()];
// always pass no_cache=false as the command doesn't take no-cache argument
// MISE_TASK_REMOTE_NO_CACHE env var is still respected if set
TaskFetcher::new(false)
.fetch_tasks(&config, &mut tasks)
.await?;
let task = &tasks[0];
if self.json {
self.display_json(&config, task).await?;
} else {
self.display(&config, task).await?;
}
} else {
bail!(
"Task not found: {}, use `mise tasks ls --all --hidden` to list all tasks",
self.task
);
}
Ok(())
}
async fn display(&self, config: &Arc<Config>, task: &Task) -> Result<()> {
info::inline_section("Task", &task.display_name)?;
if !task.aliases.is_empty() {
info::inline_section("Aliases", task.aliases.join(", "))?;
}
info::inline_section("Description", &task.description)?;
info::inline_section(
"Source",
task.config_sources().iter().map(display_path).join(", "),
)?;View on GitHub (pinned to 9dcfcaa0dc)
Solutions
- List what actually exists: `mise tasks ls --all --hidden` and copy the exact name (note leading underscore for hidden tasks)
- Run `mise tasks info <name>` from the directory whose mise.toml defines the task (usually the project root)
- Check the tasks section of mise.toml / tasks/*.toml for the definition and its aliases
Example fix
# before $ mise tasks info buld # error: Task not found: buld # after $ mise tasks ls --all --hidden # find exact name "build" $ mise tasks info build
Defensive patterns
Strategy: validation
Validate before calling
task="build"
if mise tasks ls --all --hidden 2>/dev/null | awk '{print $1}' | grep -qx "${task#*:}"; then
mise tasks info "$task"
else
echo "task '$task' not defined here" >&2; exit 1
fi Try / catch
mise tasks info "$task" || { echo "unknown task: $task — run `mise tasks ls --all --hidden`" >&2; exit 1; } Prevention
- Run `mise tasks ls --all --hidden` when onboarding to learn exact (and hidden, underscore-prefixed) names
- Pin scripts to the project root (the dir with mise.toml) before resolving tasks
- Prefer exact task names from mise.lock/docs over typed-from-memory names
When it happens
Trigger: `mise tasks info buld` (typo), a task defined in a subdirectory or different config layer not loaded from cwd, a hidden task (name starting with _), or `mise tasks info owner/repo:task` where the remote task does not exist or cannot be fetched.
Common situations: Running mise from a subdirectory instead of the project root; task renamed between branches; typo'd task name in a script; expecting a task from a nested package's mise.toml that isn't in the config chain.
Related errors
- task list options cannot be used with task info
- no tasks defined in {}. Are you in a project directory?
- Task not found: {task_spec}, use `mise tasks ls --all --hidd
- No config file found in current directory
- multiple tasks map to task stub path {}
AI-assisted analysis of jdx/mise@9dcfcaa0dc (2026-08-17).
Data as JSON: /api/errors/eac7d3cb9b9481d9.
Report an issue: GitHub.