zed-industries/zed · error

Running on unsupported os: {other}

Error message

Running on unsupported os: {other}

What it means

The Go adapter's install path maps consts::OS to a delve-shim-dap asset triple (macos->apple-darwin, linux->unknown-linux-gnu, windows->pc-windows-msvc) from the zed-industries/delve-shim-dap GitHub release. Any other OS bails immediately with 'Running on unsupported os: {other}', before asset lookup, since no shim tarball/zip exists for it.

Source

Thrown at crates/dap_adapters/src/go.rs:51

impl GoDebugAdapter {
    const ADAPTER_NAME: &'static str = "Delve";
    async fn fetch_latest_adapter_version(
        delegate: &Arc<dyn DapDelegate>,
    ) -> Result<AdapterVersion> {
        let release = latest_github_release(
            "zed-industries/delve-shim-dap",
            true,
            false,
            delegate.http_client(),
        )
        .await?;

        let os = match consts::OS {
            "macos" => "apple-darwin",
            "linux" => "unknown-linux-gnu",
            "windows" => "pc-windows-msvc",
            other => bail!("Running on unsupported os: {other}"),
        };
        let suffix = if consts::OS == "windows" {
            ".zip"
        } else {
            ".tar.gz"
        };
        let asset_name = format!("delve-shim-dap-{}-{os}{suffix}", consts::ARCH);
        let asset = release
            .assets
            .iter()
            .find(|asset| asset.name == asset_name)
            .with_context(|| format!("no asset found matching `{asset_name:?}`"))?;

        Ok(AdapterVersion {
            tag_name: release.tag_name,
            url: asset.browser_download_url.clone(),
        })
    }

View on GitHub (pinned to f4178619ac)

Solutions

  1. Do Go debugging from macOS/Linux/Windows where the shim is published
  2. Skip the shim: configure a locally installed dlv (go install github.com/go-delve/delve/cmd/dlv@latest) as a custom debug adapter command
  3. Build delve-shim-dap from source on the unsupported OS and point the adapter at it
Defensive patterns

Strategy: validation

Validate before calling

fn go_shim_os_supported() -> bool {
    matches!(std::env::consts::OS, "macos" | "linux" | "windows")
}

Type guard

fn is_supported_go_shim_os(os: &str) -> bool {
    matches!(os, "macos" | "linux" | "windows")
}

Prevention

When it happens

Trigger: Zed tries to fetch or update the Go debug adapter (delve shim) on an OS outside {macos, linux, windows} - e.g. freebsd or android - making the formatted asset name 'delve-shim-dap-{arch}-{os}{suffix}' unmatchable.

Common situations: BSD or Android hosts running community Zed builds; cross-environment setups where the debugger install runs on an unsupported platform.

Related errors


AI-assisted analysis of zed-industries/zed@f4178619ac (2026-08-20). Data as JSON: /api/errors/6dcb18c1e942a0c5. Report an issue: GitHub.