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

  1. Run the package manager install (npm/pnpm/yarn/bun install) in the project so node_modules exists
  2. 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.