zed-industries/zed · error

Not a directory: {path:?}

Error message

Not a directory: {path:?}

What it means

Raised in read_kernelspec_at when the path has a valid file name but the Fs layer reports it is not a directory. A Jupyter kernelspec must be a directory containing kernel.json; a file (or missing/renamed path) at that location fails this check.

Source

Thrown at crates/repl/src/kernels/native_kernel.rs:321

        self.kill();
    }
}

async fn read_kernelspec_at(
    // Path should be a directory to a jupyter kernelspec, as in
    // /usr/local/share/jupyter/kernels/python3
    kernel_dir: PathBuf,
    fs: &dyn Fs,
) -> Result<LocalKernelSpecification> {
    let path = kernel_dir;
    let kernel_name = if let Some(kernel_name) = path.file_name() {
        kernel_name.to_string_lossy().into_owned()
    } else {
        anyhow::bail!("Invalid kernelspec directory: {path:?}");
    };

    if !fs.is_dir(path.as_path()).await {
        anyhow::bail!("Not a directory: {path:?}");
    }

    let expected_kernel_json = path.join("kernel.json");
    let spec = fs.load(expected_kernel_json.as_path()).await?;
    let spec = serde_json::from_str::<JupyterKernelspec>(&spec)?;

    Ok(LocalKernelSpecification {
        name: kernel_name,
        path,
        kernelspec: spec,
    })
}

/// Read a directory of kernelspec directories
async fn read_kernels_dir(path: PathBuf, fs: &dyn Fs) -> Result<Vec<LocalKernelSpecification>> {
    let mut kernelspec_dirs = fs.read_dir(&path).await?;

    let mut valid_kernelspecs = Vec::new();

View on GitHub (pinned to f4178619ac)

Solutions

  1. Remove the stray file at the path and reinstall the kernel
  2. Point the kernel discovery at a proper .../kernels/<name> directory
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/repl/src/kernels/native_kernel.rs:321 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/e540d6054be2551e. Report an issue: GitHub.