zed-industries/zed · error

Cannot format: prettier is not allowed for language {buffer_

Error message

Cannot format: prettier is not allowed for language {buffer_language:?}

What it means

The buffer's language resolved to one for which prettier formatting is explicitly disallowed by configuration/registry, so format() refuses before building params. This is a policy guard: the language is recognized but prettier is not an allowed formatter for it.

Source

Thrown at crates/prettier/src/prettier.rs:364

    }

    pub async fn format(
        &self,
        buffer: &Entity<Buffer>,
        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"),

View on GitHub (pinned to f4178619ac)

Solutions

  1. Use the language's native formatter instead of prettier for this file type
  2. If prettier should be allowed, adjust the language settings that gate prettier availability
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/prettier/src/prettier.rs:364 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/9860dfb4d1015aab. Report an issue: GitHub.