zed-industries/zed · error

missing node binary file

Error message

missing node binary file

What it means

Guard in NodeRuntime::npm_command: the ensure! check finds no file at installation_path/NODE_PATH, so the managed Node installation is incomplete or was removed. Any npm subcommand cannot run without its node binary.

Source

Thrown at crates/node_runtime/src/node_runtime.rs:815

                String::from_utf8_lossy(&output.stdout),
                String::from_utf8_lossy(&output.stderr)
            );
        }

        output.map_err(|e| anyhow!("{e}"))
    }

    async fn npm_command(
        &self,
        prefix_dir: Option<&Path>,
        proxy: Option<&Url>,
        subcommand: &str,
        args: &[&str],
    ) -> Result<NpmCommand> {
        let node_binary = self.installation_path.join(Self::NODE_PATH);
        let npm_file = self.installation_path.join(Self::NPM_PATH);

        anyhow::ensure!(
            smol::fs::metadata(&node_binary).await.is_ok(),
            "missing node binary file"
        );
        anyhow::ensure!(
            smol::fs::metadata(&npm_file).await.is_ok(),
            "missing npm file"
        );

        let command_args = build_npm_command_args(
            Some(&npm_file),
            prefix_dir,
            &self.installation_path.join("cache"),
            Some(&self.installation_path.join("blank_user_npmrc")),
            Some(&self.installation_path.join("blank_global_npmrc")),
            proxy,
            subcommand,
            args,
        );

View on GitHub (pinned to 9d272b0363)

Solutions

  1. Let Zed re-download the Node runtime (it installs on first need)
  2. Check that the installation directory was not deleted or blocked by antivirus
  3. Verify disk space and permissions
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/node_runtime/src/node_runtime.rs:814 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of zed-industries/zed@9d272b0363 (2026-08-20). Data as JSON: /api/errors/d325c58718bdc58e. Report an issue: GitHub.