{"record":{"id":"77386cbb14660c70","repo":"zed-industries/zed","slug":"failed-to-read-tasks-file-at-path","errorCode":null,"errorMessage":"Failed to read tasks file at {path}","messagePattern":"Failed to read tasks file at (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/extension_cli/src/main.rs","lineNumber":496,"sourceCode":"            description.trim().chars().count() > manifest.name.trim().chars().count()\n        });\n    if !description_is_longer_than_name {\n        return Err(ExtensionManifestValidationError::DescriptionNotLongerThanName);\n    }\n\n    if manifest\n        .authors\n        .iter()\n        .all(|author| author.trim().is_empty())\n    {\n        return Err(ExtensionManifestValidationError::MissingAuthors);\n    }\n\n    let repository = manifest\n        .repository\n        .as_ref()\n        .map(|repository| repository.trim())\n        .filter(|repository| !repository.is_empty())\n        .ok_or(ExtensionManifestValidationError::MissingRepository)?;\n\n    let repository_url = repository\n        .parse::<Url>()\n        .map_err(|_| ExtensionManifestValidationError::InvalidRepository(repository.to_string()))?;\n\n    if repository_url.host_str().is_none() {\n        return Err(ExtensionManifestValidationError::InvalidRepository(\n            repository.to_string(),\n        ));\n    };\n\n    if !manifest.language_model_providers.is_empty() {\n        return Err(ExtensionManifestValidationError::LanguageModelProvidersUnsupported);\n    }\n\n    Ok(())\n}","sourceCodeStart":478,"sourceCodeEnd":514,"githubUrl":"https://github.com/zed-industries/zed/blob/9d272b036335401f339d024ea94968fd51016c40/crates/extension_cli/src/main.rs#L478-L514","documentation":"While validating an extension's language directory, reading the tasks file (tasks.json) from disk failed. This is an I/O error wrapper: the file path exists in the directory listing but std::fs::read returned an error such as permission denied or a broken symlink; {path} names the offending file.","triggerScenarios":"Thrown at crates/extension_cli/src/main.rs:472 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the file exists, is readable, and is not a broken symlink at the reported path","Fix permissions on the tasks file and re-run validation"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"9d272b036335401f339d024ea94968fd51016c40","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}