{"record":{"id":"e540d6054be2551e","repo":"zed-industries/zed","slug":"not-a-directory-path","errorCode":null,"errorMessage":"Not a directory: {path:?}","messagePattern":"Not a directory: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/repl/src/kernels/native_kernel.rs","lineNumber":321,"sourceCode":"        self.kill();\n    }\n}\n\nasync fn read_kernelspec_at(\n    // Path should be a directory to a jupyter kernelspec, as in\n    // /usr/local/share/jupyter/kernels/python3\n    kernel_dir: PathBuf,\n    fs: &dyn Fs,\n) -> Result<LocalKernelSpecification> {\n    let path = kernel_dir;\n    let kernel_name = if let Some(kernel_name) = path.file_name() {\n        kernel_name.to_string_lossy().into_owned()\n    } else {\n        anyhow::bail!(\"Invalid kernelspec directory: {path:?}\");\n    };\n\n    if !fs.is_dir(path.as_path()).await {\n        anyhow::bail!(\"Not a directory: {path:?}\");\n    }\n\n    let expected_kernel_json = path.join(\"kernel.json\");\n    let spec = fs.load(expected_kernel_json.as_path()).await?;\n    let spec = serde_json::from_str::<JupyterKernelspec>(&spec)?;\n\n    Ok(LocalKernelSpecification {\n        name: kernel_name,\n        path,\n        kernelspec: spec,\n    })\n}\n\n/// Read a directory of kernelspec directories\nasync fn read_kernels_dir(path: PathBuf, fs: &dyn Fs) -> Result<Vec<LocalKernelSpecification>> {\n    let mut kernelspec_dirs = fs.read_dir(&path).await?;\n\n    let mut valid_kernelspecs = Vec::new();","sourceCodeStart":303,"sourceCodeEnd":339,"githubUrl":"https://github.com/zed-industries/zed/blob/f4178619acd0d47ea1f76a2025c42962c6d6638c/crates/repl/src/kernels/native_kernel.rs#L303-L339","documentation":"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.","triggerScenarios":"Thrown at crates/repl/src/kernels/native_kernel.rs:321 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Remove the stray file at the path and reinstall the kernel","Point the kernel discovery at a proper .../kernels/<name> directory"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"f4178619acd0d47ea1f76a2025c42962c6d6638c","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}