zed-industries/zed · error

app_path is not available on the web

Error message

app_path is not available on the web

What it means

Sentinel from the web platform's app_path: there is no application bundle or binary path concept in the browser, so this accessor unconditionally returns this error. Any caller assuming a native install path will always fail on the web.

Source

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

    fn open_with_system(&self, _path: &Path) {}

    fn on_quit(&self, callback: Box<dyn FnMut() -> bool>) {
        self.callbacks.borrow_mut().quit = Some(callback);
    }

    fn on_reopen(&self, callback: Box<dyn FnMut()>) {
        self.callbacks.borrow_mut().reopen = Some(callback);
    }

    // Browsers expose no system sleep or wake signal; the nearest thing is the
    // Page Visibility API, which drives `WindowVisibility` instead.
    fn on_system_sleep(&self, _callback: Box<dyn FnMut()>) {}

    fn on_system_wake(&self, _callback: Box<dyn FnMut()>) {}

    fn set_menus(&self, _menus: Vec<Menu>, _keymap: &Keymap) {}

    fn set_dock_menu(&self, _menu: Vec<MenuItem>, _keymap: &Keymap) {}

    fn on_app_menu_action(&self, callback: Box<dyn FnMut(&dyn Action)>) {
        self.callbacks.borrow_mut().app_menu_action = Some(callback);
    }

    fn on_will_open_app_menu(&self, callback: Box<dyn FnMut()>) {
        self.callbacks.borrow_mut().will_open_app_menu = Some(callback);
    }

    fn on_validate_app_menu_command(&self, callback: Box<dyn FnMut(&dyn Action) -> bool>) {
        self.callbacks.borrow_mut().validate_app_menu_command = Some(callback);
    }

    fn thermal_state(&self) -> ThermalState {
        ThermalState::Nominal
    }

    fn on_thermal_state_change(&self, callback: Box<dyn FnMut()>) {

View on GitHub (pinned to 9d272b0363)

Solutions

  1. Avoid app_path in web builds; feature-gate code that needs a native install location
  2. Use a URL/origin-based identifier as the web equivalent of the app identity
  3. Handle the Err to disable path-dependent features (updater, relative resources) on the web
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/gpui_web/src/platform.rs:500 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/1b404dab49d49a9e. Report an issue: GitHub.