{"record":{"id":"62c2980847c9759a","repo":"zed-industries/zed","slug":"popup-parent-window-not-found","errorCode":null,"errorMessage":"popup parent window not found","messagePattern":"popup parent window not found","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/gpui_linux/src/linux/wayland/client.rs","lineNumber":1003,"sourceCode":"\nimpl LinuxClient for WaylandClient {\n    fn keyboard_layout(&self) -> Box<dyn PlatformKeyboardLayout> {\n        Box::new(self.0.borrow().keyboard_layout.clone())\n    }\n\n    fn displays(&self) -> Vec<Rc<dyn PlatformDisplay>> {\n        self.0\n            .borrow()\n            .outputs\n            .iter()\n            .map(|(id, output)| {\n                Rc::new(WaylandDisplay {\n                    id: id.clone(),\n                    name: output.name.clone(),\n                    bounds: output.bounds.to_pixels(output.scale as f32),\n                }) as Rc<dyn PlatformDisplay>\n            })\n            .collect()\n    }\n\n    fn display(&self, id: DisplayId) -> Option<Rc<dyn PlatformDisplay>> {\n        self.0\n            .borrow()\n            .outputs\n            .iter()\n            .find_map(|(object_id, output)| {\n                (object_id.protocol_id() as u64 == u64::from(id)).then(|| {\n                    Rc::new(WaylandDisplay {\n                        id: object_id.clone(),\n                        name: output.name.clone(),\n                        bounds: output.bounds.to_pixels(output.scale as f32),\n                    }) as Rc<dyn PlatformDisplay>\n                })\n            })\n    }\n","sourceCodeStart":985,"sourceCodeEnd":1021,"githubUrl":"https://github.com/zed-industries/zed/blob/9d272b036335401f339d024ea94968fd51016c40/crates/gpui_linux/src/linux/wayland/client.rs#L985-L1021","documentation":"Guard in WaylandClient::open_window: an AnchoredPopup was requested whose explicit parent window handle does not match any live window in the client's window table, so no parent surface exists to anchor the popup to. Usually means the parent view was closed or the handle is stale by the time the popup opens.","triggerScenarios":"Thrown at crates/gpui_linux/src/linux/wayland/client.rs:997 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the parent AnyWindowHandle is still open (window exists in state.windows) before opening the popup","Delay opening the popup until the parent window is fully created and tracked","Ensure popups are torn down when their parent window closes so no orphaned requests remain"],"exampleFix":null,"handlingStrategy":"validation","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-14T05:17:10.506Z"}