{"record":{"id":"3e89fe8ee399a580","repo":"zed-industries/zed","slug":"x11-connection-unsupported-extension","errorCode":null,"errorMessage":"X11 connection: Unsupported extension","messagePattern":"X11 connection: Unsupported extension","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/gpui_linux/src/linux/x11/window.rs","lineNumber":434,"sourceCode":"\n    if !urgent && !hints.urgent {\n        return;\n    }\n\n    hints.urgent = urgent;\n    check_reply(\n        || \"X11 ChangeProperty for WM_HINTS urgency failed.\",\n        hints.set(xcb, x_window),\n    )\n    .log_err();\n    xcb_flush(xcb);\n}\n\n/// Convert X11 connection errors to `anyhow::Error` and panic for unrecoverable errors.\npub(crate) fn handle_connection_error(err: ConnectionError) -> anyhow::Error {\n    match err {\n        ConnectionError::UnknownError => anyhow!(\"X11 connection: Unknown error\"),\n        ConnectionError::UnsupportedExtension => anyhow!(\"X11 connection: Unsupported extension\"),\n        ConnectionError::MaximumRequestLengthExceeded => {\n            anyhow!(\"X11 connection: Maximum request length exceeded\")\n        }\n        ConnectionError::FdPassingFailed => {\n            panic!(\"X11 connection: File descriptor passing failed\")\n        }\n        ConnectionError::ParseError(parse_error) => {\n            anyhow!(parse_error).context(\"Parse error in X11 response\")\n        }\n        ConnectionError::InsufficientMemory => panic!(\"X11 connection: Insufficient memory\"),\n        ConnectionError::IoError(err) => anyhow!(err).context(\"X11 connection: IOError\"),\n        _ => anyhow!(err),\n    }\n}\n\nimpl X11WindowState {\n    pub fn new(\n        handle: AnyWindowHandle,","sourceCodeStart":416,"sourceCodeEnd":452,"githubUrl":"https://github.com/zed-industries/zed/blob/9d272b036335401f339d024ea94968fd51016c40/crates/gpui_linux/src/linux/x11/window.rs#L416-L452","documentation":"Mapping arm in handle_connection_error: the X11 server reported that a required extension is not available (ConnectionError::UnsupportedExtension), e.g. the server lacks XFixes, XRandR, or a compositor extension the client assumed. Converted to anyhow::Error for the caller to handle.","triggerScenarios":"Thrown at crates/gpui_linux/src/linux/x11/window.rs:429 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Identify which extension is missing (xdpyinfo) and fall back to code paths that don't need it","Feature-gate extension-dependent functionality and probe availability before use","For compositing-related extensions, run under a compositing window manager or disable transparency effects"],"exampleFix":null,"handlingStrategy":"try-catch","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"}