zed-industries/zed · error
Prettier node_modules dir does not exist: {prettier_node_mod
Error message
Prettier node_modules dir does not exist: {prettier_node_modules:?} What it means
During format, the project's prettier node_modules directory (derived from the located prettier installation) does not exist on disk, so the prettier server binary and its plugins cannot be resolved. Dependencies were likely never installed or were removed after location was cached.
Source
Thrown at crates/prettier/src/prettier.rs:369
buffer_path: Option<PathBuf>,
ignore_dir: Option<PathBuf>,
range_utf16: Option<Range<OffsetUtf16>>,
request_timeout: Duration,
cx: &mut AsyncApp,
) -> anyhow::Result<Diff> {
match self {
Self::Real(local) => {
let params = buffer
.update(cx, |buffer, cx| {
let buffer_language = buffer.language().map(|language| language.as_ref());
let language_settings = LanguageSettings::for_buffer(&buffer, cx);
let prettier_settings = &language_settings.prettier;
anyhow::ensure!(
prettier_settings.allowed,
"Cannot format: prettier is not allowed for language {buffer_language:?}"
);
let prettier_node_modules = self.prettier_dir().join("node_modules");
anyhow::ensure!(
prettier_node_modules.is_dir(),
"Prettier node_modules dir does not exist: {prettier_node_modules:?}"
);
let plugin_name_into_path = |plugin_name: &str| {
let prettier_plugin_dir = prettier_node_modules.join(plugin_name);
[
prettier_plugin_dir.join("dist").join("index.mjs"),
prettier_plugin_dir.join("dist").join("index.js"),
prettier_plugin_dir.join("dist").join("plugin.js"),
prettier_plugin_dir.join("src").join("plugin.js"),
prettier_plugin_dir.join("lib").join("index.js"),
prettier_plugin_dir.join("index.mjs"),
prettier_plugin_dir.join("index.js"),
prettier_plugin_dir.join("plugin.js"),
// this one is for @prettier/plugin-php
prettier_plugin_dir.join("standalone.js"),
// this one is for prettier-plugin-latex
prettier_plugin_dir.join("dist").join("prettier-plugin-latex.js"),View on GitHub (pinned to f4178619ac)
Solutions
- Run the package manager install (npm/pnpm/yarn/bun install) in the project so node_modules exists
- If node_modules was moved or the path style (e.g. pnpm symlinks) confuses resolution, verify the resolved path manually
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at crates/prettier/src/prettier.rs:369 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of zed-industries/zed@f4178619ac (2026-08-20).
Data as JSON: /api/errors/2abd99ba2ac324b6.
Report an issue: GitHub.