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

`context_server_configuration` not available prior to v0.5.0

Error message

`context_server_configuration` not available prior to v0.5.0

What it means

call_context_server_configuration dispatches context-server configuration through the WIT interface only from v0.5.0 onward. Extensions compiled against any of v0.0.1 through v0.4.0 hit the bail arm with this message when the host asks them for context server configuration.

Source

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

                ext.call_context_server_configuration(store, &context_server_id, project)
                    .await
            }
            Extension::V0_6_0(ext) => {
                ext.call_context_server_configuration(store, &context_server_id, project)
                    .await
            }
            Extension::V0_5_0(ext) => {
                ext.call_context_server_configuration(store, &context_server_id, project)
                    .await
            }
            Extension::V0_0_1(_)
            | Extension::V0_0_4(_)
            | Extension::V0_0_6(_)
            | Extension::V0_1_0(_)
            | Extension::V0_2_0(_)
            | Extension::V0_3_0(_)
            | Extension::V0_4_0(_) => {
                anyhow::bail!("`context_server_configuration` not available prior to v0.5.0");
            }
        }
    }

    pub async fn call_suggest_docs_packages(
        &self,
        store: &mut Store<WasmState>,
        provider: &str,
    ) -> Result<Result<Vec<String>, String>> {
        match self {
            Extension::V0_8_0(ext) => ext.call_suggest_docs_packages(store, provider).await,
            Extension::V0_6_0(ext) => ext.call_suggest_docs_packages(store, provider).await,
            Extension::V0_5_0(ext) => ext.call_suggest_docs_packages(store, provider).await,
            Extension::V0_4_0(ext) => ext.call_suggest_docs_packages(store, provider).await,
            Extension::V0_3_0(ext) => ext.call_suggest_docs_packages(store, provider).await,
            Extension::V0_2_0(ext) => ext.call_suggest_docs_packages(store, provider).await,
            Extension::V0_1_0(ext) => ext.call_suggest_docs_packages(store, provider).await,
            Extension::V0_0_1(_) | Extension::V0_0_4(_) | Extension::V0_0_6(_) => {

View on GitHub (pinned to f4178619ac)

Solutions

  1. Raise zed_extension_api to >= 0.5.0 in the extension's Cargo.toml and rebuild.
  2. Reinstall the rebuilt extension locally or publish a new version.
  3. Clean out old installed copies of the extension so only the rebuilt wasm is dispatched.

Example fix

# before (extension Cargo.toml)
[dependencies]
zed_extension_api = "0.4.0"

# after
[dependencies]
zed_extension_api = "0.5.0"
Defensive patterns

Strategy: validation

Validate before calling

let api_version = extension_host::parse_wasm_extension_version(extension_id, &wasm_bytes)?;
if api_version < semver::Version::new(0, 5, 0) {
    // cannot ask this extension for context server configuration
    return Ok(None);
}

Type guard

fn supports_context_server_configuration(ext: &Extension) -> bool {
    !matches!(
        ext,
        Extension::V0_0_1(_)
            | Extension::V0_0_4(_)
            | Extension::V0_0_6(_)
            | Extension::V0_1_0(_)
            | Extension::V0_2_0(_)
            | Extension::V0_3_0(_)
            | Extension::V0_4_0(_)
    )
}

Prevention

When it happens

Trigger: An extension exposing a context server but built with zed_extension_api < 0.5.0 receives a call_context_server_configuration dispatch from a newer Zed.

Common situations: Zed gained context-server configuration support and old extension builds remain installed; extension authors copying an old template project with an outdated zed_extension_api pin.

Related errors


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