zed-industries/zed · error

browser WebGPU probe did not return a usable adapter

Error message

browser WebGPU probe did not return a usable adapter

What it means

Guard in initialize_graphics: the browser reported WebGPU as supported (navigator.gpu exists) but requesting an adapter returned None, so no usable GPU device is available — e.g. blocklisted GPU, WebGPU disabled by flags/policy, or hardware acceleration off. WebGPU probing succeeded but produced no adapter.

Source

Thrown at crates/gpui_web/src/platform.rs:204

            active_display,
            callbacks: RefCell::new(WebPlatformCallbacks::default()),
            backend_preference,
            wgpu_context: Rc::new(RefCell::new(None)),
            prepared_window: Rc::new(RefCell::new(None)),
            window_lifecycle: Rc::new(Cell::new(WebWindowLifecycle::Available)),
            cursor_visible,
            last_cursor_css,
            gestures,
            _cursor_restore_listeners: cursor_restore_listeners,
        }
    }

    /// Returns an HTTP client that runs browser Fetch operations on this platform's main thread.
    pub fn fetch_http_client(&self) -> FetchHttpClient {
        FetchHttpClient::new(self.dispatcher.clone())
    }

    /// Returns a browser Fetch HTTP client with the given reported user agent.
    pub fn fetch_http_client_with_user_agent(
        &self,
        user_agent: &str,
    ) -> anyhow::Result<FetchHttpClient> {
        FetchHttpClient::with_user_agent(self.dispatcher.clone(), user_agent)
    }
}

async fn initialize_graphics(
    browser_window: &web_sys::Window,
    preference: WebBackendPreference,
) -> anyhow::Result<(
    web_sys::HtmlCanvasElement,
    WgpuContext,
    wgpu::Surface<'static>,
)> {
    match preference {
        WebBackendPreference::Auto => {

View on GitHub (pinned to 9d272b0363)

Solutions

  1. Fall back to the WebGL2 path (the code does this next in Auto mode)
  2. Ask the user to enable hardware acceleration / WebGPU in browser settings
  3. Check navigator.gpu.requestAdapter options (power preference, features) for over-constrained requests
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at crates/gpui_web/src/platform.rs:204 when the library encounters an invalid state.

Common situations: See trigger scenarios.


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