zed-industries/zed · error

register_url_scheme unimplemented

Error message

register_url_scheme unimplemented

What it means

Sentinel 'unimplemented' error returned by the Windows platform's `register_url_scheme` implementation: the API contract requires returning a Task, but the Windows backend has no implementation for registering a custom URL protocol handler (unlike macOS/Linux), so it always fails with this stub message.

Source

Thrown at crates/gpui_windows/src/platform.rs:997

                };
                let password = credential_blob.to_vec();
                unsafe { CredFree(credentials as *const _ as _) };
                Ok(Some((username, password)))
            }
        })
    }

    fn delete_credentials(&self, url: &str) -> Task<Result<()>> {
        let target_name = windows_credentials_target_name(url)
            .encode_utf16()
            .chain(Some(0))
            .collect_vec();
        self.foreground_executor().spawn(async move {
            unsafe {
                CredDeleteW(
                    PCWSTR::from_raw(target_name.as_ptr()),
                    CRED_TYPE_GENERIC,
                    None,
                )?
            };
            Ok(())
        })
    }

    fn register_url_scheme(&self, _: &str) -> Task<anyhow::Result<()>> {
        Task::ready(Err(anyhow!("register_url_scheme unimplemented")))
    }

    fn perform_dock_menu_action(&self, action: usize) {
        unsafe {
            PostMessageW(
                Some(self.handle),
                WM_GPUI_DOCK_MENU_ACTION,
                WPARAM(self.inner.validation_number),
                LPARAM(action as isize),
            )

View on GitHub (pinned to 9d272b0363)

Solutions

  1. Implement registration via the HKCU\Software\Classes\<scheme> registry keys (no admin rights needed).
  2. Use the IApplicationActivationManager / app registration APIs for packaged apps.
  3. Return a clear 'unsupported on this platform' error type callers can check.
  4. Have callers feature-detect and skip scheme registration on Windows until supported.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/gpui_windows/src/platform.rs:932 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/974792ef9a502fd8. Report an issue: GitHub.