zed-industries/zed · error · anyhow::Error

{e:?}

Error message

{e:?}

What it means

A pass-through of the error returned by an extension's get_debug_adapter_binary implementation ({e:?} is the Debug rendering of the inner error, likely a Result::Err(String) from the extension or a task conversion failure via try_into). The host simply relays the extension-produced failure for the requested debug adapter, so the root cause is inside the extension's DAP binary resolution logic.

Source

Thrown at crates/extension_host/src/wasm_host/wit.rs:1070

        &self,
        store: &mut Store<WasmState>,
        adapter_name: Arc<str>,
        task: DebugTaskDefinition,
        user_installed_path: Option<PathBuf>,
        resource: Resource<Arc<dyn WorktreeDelegate>>,
    ) -> Result<Result<DebugAdapterBinary, String>> {
        match self {
            Extension::V0_8_0(ext) => {
                let dap_binary = ext
                    .call_get_dap_binary(
                        store,
                        &adapter_name,
                        &task.try_into()?,
                        user_installed_path.as_ref().and_then(|p| p.to_str()),
                        resource,
                    )
                    .await?
                    .map_err(|e| anyhow!("{e:?}"))?;

                Ok(Ok(dap_binary))
            }
            Extension::V0_6_0(ext) => {
                let task: latest::DebugTaskDefinition = task.try_into()?;
                let dap_binary = ext
                    .call_get_dap_binary(
                        store,
                        &adapter_name,
                        &task.into(),
                        user_installed_path.as_ref().and_then(|p| p.to_str()),
                        resource,
                    )
                    .await?
                    .map_err(|e| anyhow!("{e:?}"))?;

                Ok(Ok(dap_binary.into()))
            }

View on GitHub (pinned to f4178619ac)

Solutions

  1. Inspect the debugged extension's get_debug_adapter_binary implementation — download path, architecture detection, or executable resolution failed
  2. Report the error string to the user alongside the adapter name so they can fix the extension config
  3. Ensure the DebugTaskDefinition converts cleanly (try_into) — malformed task definitions surface here too
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at crates/extension_host/src/wasm_host/wit.rs:1070 when the library encounters an invalid state.

Common situations: See trigger scenarios.


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