zed-industries/zed · error

default prettier dir {default_prettier_dir:?} is not a direc

Error message

default prettier dir {default_prettier_dir:?} is not a directory

What it means

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.

Source

Thrown at crates/project/src/prettier_store.rs:943

    }
}

async fn install_prettier_packages(
    fs: &dyn Fs,
    plugins_to_install: HashSet<Arc<str>>,
    node: NodeRuntime,
) -> anyhow::Result<()> {
    let packages_to_install = plugins_to_install
        .iter()
        .map(|package_name| package_name.to_string())
        .chain(Some("prettier".to_string()))
        .collect::<Vec<_>>();

    let default_prettier_dir = default_prettier_dir().as_path();
    match fs.metadata(default_prettier_dir).await.with_context(|| {
        format!("fetching FS metadata for default prettier dir {default_prettier_dir:?}")
    })? {
        Some(prettier_dir_metadata) => anyhow::ensure!(
            prettier_dir_metadata.is_dir,
            "default prettier dir {default_prettier_dir:?} is not a directory"
        ),
        None => fs
            .create_dir(default_prettier_dir)
            .await
            .with_context(|| format!("creating default prettier dir {default_prettier_dir:?}"))?,
    }

    log::info!("Installing default prettier and plugins: {packages_to_install:?}");
    let borrowed_packages = packages_to_install
        .iter()
        .map(|package_name| package_name.as_str())
        .collect::<Vec<_>>();
    node.npm_install_latest_packages(default_prettier_dir, &borrowed_packages)
        .await
        .context("fetching formatter packages")?;
    anyhow::Ok(())

View on GitHub (pinned to f4178619ac)

Solutions

  1. Remove the file occupying the default prettier directory path so Zed can create the directory
  2. Check permissions on the Zed data directory
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/project/src/prettier_store.rs:943 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/d3c11a4725267b43. Report an issue: GitHub.