{"record":{"id":"a4c0dfa3d95e733d","repo":"jdx/mise","slug":"no-tasks-defined-in-but-found-non-executabl","errorCode":null,"errorMessage":"no tasks defined in {}, but found {} non-executable file(s) in {}.\nFiles must be executable to be detected as tasks.\nRun `chmod +x` on the task files to fix this, e.g.:\n  chmod +x {}","messagePattern":"no tasks defined in (.+?), but found (.+?) non-executable file\\(s\\) in (.+?)\\.\nFiles must be executable to be detected as tasks\\.\nRun `chmod \\+x` on the task files to fix this, e\\.g\\.:\n  chmod \\+x (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/task/task_list.rs","lineNumber":320,"sourceCode":"        }\n\n        if let Some(task) = make_task_executable(config, name, task_context).await? {\n            return Ok(Some(task));\n        }\n\n        // Check if there are non-executable files in task include directories\n        if !cfg!(windows)\n            && let Some(cwd) = &*dirs::CWD\n        {\n            let includes = config::task_includes_for_dir(cwd, &config.config_files)?;\n            let non_exec_files = find_non_executable_task_files(&includes);\n            if !non_exec_files.is_empty() {\n                let dirs_with_files: Vec<String> = includes\n                    .iter()\n                    .filter(|d| d.is_dir())\n                    .map(display_path)\n                    .collect();\n                bail!(\n                    \"no tasks defined in {}, but found {} non-executable file(s) in {}.\\n\\\n                        Files must be executable to be detected as tasks.\\n\\\n                        Run `chmod +x` on the task files to fix this, e.g.:\\n  chmod +x {}\",\n                    display_path(dirs::CWD.clone().unwrap_or_default()),\n                    non_exec_files.len(),\n                    dirs_with_files.join(\", \"),\n                    non_exec_files\n                        .iter()\n                        .take(5)\n                        .map(display_path)\n                        .collect::<Vec<_>>()\n                        .join(\" \"),\n                );\n            }\n        }\n\n        bail!(\n            \"no tasks defined in {}. Are you in a project directory?\",","sourceCodeStart":302,"sourceCodeEnd":338,"githubUrl":"https://github.com/jdx/mise/blob/6f52dcdf99e282ef7a7db68c81301fa4618d0f79/src/task/task_list.rs#L302-L338","documentation":"Error \"no tasks defined in {}, but found {} non-executable file(s) in {}.\nFiles must be executable to be detected as tasks.\nRun `chmod +x` on the task files to fix this, e.g.:\n  chmod +x {}\" thrown in jdx/mise.","triggerScenarios":"Thrown at src/task/task_list.rs:320 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Run `chmod +x` on the listed task file(s); file tasks must be executable to be detected."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6f52dcdf99e282ef7a7db68c81301fa4618d0f79","analyzedAt":"2026-08-22T10:14:23.840Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}