{"record":{"id":"d3c11a4725267b43","repo":"zed-industries/zed","slug":"default-prettier-dir-default-prettier-dir-is-n","errorCode":null,"errorMessage":"default prettier dir {default_prettier_dir:?} is not a directory","messagePattern":"default prettier dir (.+?) is not a directory","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/project/src/prettier_store.rs","lineNumber":943,"sourceCode":"    }\n}\n\nasync fn install_prettier_packages(\n    fs: &dyn Fs,\n    plugins_to_install: HashSet<Arc<str>>,\n    node: NodeRuntime,\n) -> anyhow::Result<()> {\n    let packages_to_install = plugins_to_install\n        .iter()\n        .map(|package_name| package_name.to_string())\n        .chain(Some(\"prettier\".to_string()))\n        .collect::<Vec<_>>();\n\n    let default_prettier_dir = default_prettier_dir().as_path();\n    match fs.metadata(default_prettier_dir).await.with_context(|| {\n        format!(\"fetching FS metadata for default prettier dir {default_prettier_dir:?}\")\n    })? {\n        Some(prettier_dir_metadata) => anyhow::ensure!(\n            prettier_dir_metadata.is_dir,\n            \"default prettier dir {default_prettier_dir:?} is not a directory\"\n        ),\n        None => fs\n            .create_dir(default_prettier_dir)\n            .await\n            .with_context(|| format!(\"creating default prettier dir {default_prettier_dir:?}\"))?,\n    }\n\n    log::info!(\"Installing default prettier and plugins: {packages_to_install:?}\");\n    let borrowed_packages = packages_to_install\n        .iter()\n        .map(|package_name| package_name.as_str())\n        .collect::<Vec<_>>();\n    node.npm_install_latest_packages(default_prettier_dir, &borrowed_packages)\n        .await\n        .context(\"fetching formatter packages\")?;\n    anyhow::Ok(())","sourceCodeStart":925,"sourceCodeEnd":961,"githubUrl":"https://github.com/zed-industries/zed/blob/f4178619acd0d47ea1f76a2025c42962c6d6638c/crates/project/src/prettier_store.rs#L925-L961","documentation":"In install_prettier_packages (via save_prettier_server_file): the resolved default prettier directory exists in the filesystem metadata but is not a directory (e.g. a regular file occupies the path), so plugin installation cannot proceed.","triggerScenarios":"Thrown at crates/project/src/prettier_store.rs:943 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Remove the file occupying the default prettier directory path so Zed can create the directory","Check permissions on the Zed data directory"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"f4178619acd0d47ea1f76a2025c42962c6d6638c","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}