{"record":{"id":"f98ea9758f1154e4","repo":"zed-industries/zed","slug":"cannot-open-file","errorCode":null,"errorMessage":"cannot open file {:?}","messagePattern":"cannot open file (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/workspace/src/workspace.rs","lineNumber":1073,"sourceCode":"    fn register<T: ProjectItem>(&mut self) {\n        self.build_project_item_fns_by_type.insert(\n            TypeId::of::<T::Item>(),\n            |item, project, pane, window, cx| {\n                let item = item.downcast().unwrap();\n                Box::new(cx.new(|cx| T::for_project_item(project, pane, item, window, cx)))\n                    as Box<dyn ItemHandle>\n            },\n        );\n        self.build_project_item_for_path_fns\n            .push(|project, project_path, window, cx| {\n                let project_path = project_path.clone();\n                let is_file = project\n                    .read(cx)\n                    .entry_for_path(&project_path, cx)\n                    .is_some_and(|entry| entry.is_file());\n                let entry_abs_path = project.read(cx).absolute_path(&project_path, cx);\n                let is_local = project.read(cx).is_local();\n                let project_item =\n                    <T::Item as project::ProjectItem>::try_open(project, &project_path, cx)?;\n                let project = project.clone();\n                Some(window.spawn(cx, async move |cx| {\n                    match project_item.await.with_context(|| {\n                        format!(\n                            \"opening project path {:?}\",\n                            entry_abs_path.as_deref().unwrap_or(&project_path.path.as_std_path())\n                        )\n                    }) {\n                        Ok(project_item) => {\n                            let project_item = project_item;\n                            let project_entry_id: Option<ProjectEntryId> =\n                                project_item.read_with(cx, project::ProjectItem::entry_id);\n                            let build_workspace_item = Box::new(\n                                |pane: &mut Pane, window: &mut Window, cx: &mut Context<Pane>| {\n                                    Box::new(cx.new(|cx| {\n                                        T::for_project_item(\n                                            project,","sourceCodeStart":1055,"sourceCodeEnd":1091,"githubUrl":"https://github.com/zed-industries/zed/blob/9d272b036335401f339d024ea94968fd51016c40/crates/workspace/src/workspace.rs#L1055-L1091","documentation":"Returned by Workspace::open_path when no registered build_project_item_for_path handler can open the given ProjectPath — i.e. no editor knows how to handle this file extension/kind. The path that failed is included; opening it is unsupported in this configuration.","triggerScenarios":"Thrown at crates/workspace/src/workspace.rs:937 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Install an extension that handles this file type","Open the file with the default text editor"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"9d272b036335401f339d024ea94968fd51016c40","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}