zed-industries/zed · critical

wl_output below required version: {} < {}

Error message

wl_output below required version: {} < {}

What it means

Analogous seat check for outputs: the Wayland client requires wl_output version >= 2 (the version that exposes complete geometry/mode/scale information it relies on) and clamps the advertised version into [2, 4]. A compositor advertising wl_output v1 causes an immediate startup panic with the advertised and required versions.

Source

Thrown at crates/gpui_linux/src/linux/wayland/client.rs:695

            );
            return;
        };
        let Some(wl_pointer) = self.wl_pointer.clone() else {
            log::warn!(
                "wayland: no wl_pointer to restore cursor style {:?} after hide; cursor may stay invisible",
                style
            );
            return;
        };
        let scale = focused_window.primary_output_scale();
        self.cursor.set_icon(
            &wl_pointer,
            serial.as_raw(),
            cursor_style_to_icon_names(style),
            scale,
        );
    }
}

#[derive(Clone)]
pub struct WaylandClient(Rc<RefCell<WaylandClientState>>);

impl Drop for WaylandClient {
    fn drop(&mut self) {
        let mut state = self.0.borrow_mut();
        state.windows.clear();

        if let Some(wl_pointer) = &state.wl_pointer {
            wl_pointer.release();
        }
        if let Some(cursor_shape_device) = &state.cursor_shape_device {
            cursor_shape_device.destroy();
        }
        if let Some(data_device) = &state.data_device {
            data_device.release();
        }

View on GitHub (pinned to 9d272b0363)

Solutions

  1. Run Zed under the X11/XWayland session instead
  2. Update the compositor / Wayland stack so wl_output >= 2 is negotiated
  3. Report the compositor name and version if a current compositor still triggers it
Defensive patterns

Strategy: fallback

Validate before calling

# shell: check compositor wl_output version before launching
wayland-info | grep -A1 wl_output  # advertised version; need >= 2

Prevention

When it happens

Trigger: Starting Zed on a Wayland session whose compositor binds wl_output with version 1 — very old or minimal compositors that predate the wl_output v2 additions.

Common situations: Ancient compositor versions; toy/reference compositors; environments where an outdated Wayland library stack caps negotiated versions.

Related errors


AI-assisted analysis of zed-industries/zed@9d272b0363 (2026-08-20). Data as JSON: /api/errors/4ebdf25a6d6e5d72. Report an issue: GitHub.