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

`suggest_docs_packages` not available prior to v0.1.0

Error message

`suggest_docs_packages` not available prior to v0.1.0

What it means

Documentation indexing can ask extensions for suggested packages via call_suggest_docs_packages, an export that exists only from WIT v0.1.0 onward. Dispatching it against a v0.0.1, v0.0.4, or v0.0.6 extension bails with this message.

Source

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

            }
        }
    }

    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(_) => {
                anyhow::bail!("`suggest_docs_packages` not available prior to v0.1.0");
            }
        }
    }

    pub async fn call_index_docs(
        &self,
        store: &mut Store<WasmState>,
        provider: &str,
        package_name: &str,
        kv_store: Resource<Arc<dyn KeyValueStoreDelegate>>,
    ) -> Result<Result<(), String>> {
        match self {
            Extension::V0_8_0(ext) => {
                ext.call_index_docs(store, provider, package_name, kv_store)
                    .await
            }
            Extension::V0_6_0(ext) => {
                ext.call_index_docs(store, provider, package_name, kv_store)

View on GitHub (pinned to f4178619ac)

Solutions

  1. Bump zed_extension_api to >= 0.1.0 in the extension and rebuild.
  2. Update to the extension's latest published release.
  3. Disable the docs provider feature for that extension until it is rebuilt.

Example fix

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

# after
[dependencies]
zed_extension_api = "0.1.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, 1, 0) {
    // docs package suggestions unsupported; fall back to user-entered packages
    return Ok(vec![]);
}

Type guard

fn supports_suggest_docs_packages(ext: &Extension) -> bool {
    !matches!(
        ext,
        Extension::V0_0_1(_) | Extension::V0_0_4(_) | Extension::V0_0_6(_)
    )
}

Prevention

When it happens

Trigger: Zed's docs-indexing flow queries a docs provider implemented by an extension compiled against zed_extension_api 0.0.x.

Common situations: A documentation-provider extension built before the suggest_docs_packages export existed, still installed after Zed started calling it; local dev builds pinned to an old API version.

Related errors


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