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

remote context server settings not supported in 0.6.0

Error message

remote context server settings not supported in 0.6.0

What it means

While serving get_settings("context_servers", ...) through compatibility bindings, the host serializes project ContextServerSettings into the v0.6.0-shaped settings::ContextServerSettings type, which has only `command` (stdio) and `settings` (extension) fields. A project configured with the Http variant — a remote context server — cannot be represented, so the host bails rather than silently dropping the configuration.

Source

Thrown at crates/extension_host/src/wasm_host/wit/since_v0_8_0.rs:1029

                            })
                            .cloned()
                            .unwrap_or_else(|| {
                                project::project_settings::ContextServerSettings::default_extension(
                                )
                            });

                        match settings {
                            project::project_settings::ContextServerSettings::Stdio {
                                enabled: _,
                                command,
                                ..
                            } => Ok(serde_json::to_string(&settings::ContextServerSettings {
                                command: Some(settings::CommandSettings {
                                    path: command.path.to_str().map(|path| path.to_string()),
                                    arguments: Some(command.args),
                                    env: command.env.map(|env| env.into_iter().collect()),
                                }),
                                settings: None,
                            })?),
                            project::project_settings::ContextServerSettings::Extension {
                                enabled: _,
                                settings,
                                ..
                            } => Ok(serde_json::to_string(&settings::ContextServerSettings {
                                command: None,
                                settings: Some(settings),
                            })?),
                            project::project_settings::ContextServerSettings::Http { .. } => {
                                bail!("remote context server settings not supported in 0.6.0")
                            }
                        }
                    }
                    _ => {
                        bail!("Unknown settings category: {}", category);
                    }
                })

View on GitHub (pinned to 5a9b9558db)

Solutions

  1. Update the extension's extension_api_version to a release whose bindings model remote context servers
  2. Reconfigure the context server entry in settings.json as a stdio command or extension-provided server
  3. As a last resort, remove the http context-server entry the extension is querying

Example fix

// settings.json before
"context_servers": { "docs": { "http": { "url": "https://..." } } }

// after — stdio variant representable on old bindings
"context_servers": { "docs": { "command": { "path": "npx", "args": ["-y", "docs-mcp"] } } }
Defensive patterns

Strategy: validation

Validate before calling

// before exposing context-server settings to an old-API extension
if matches!(settings, ContextServerSettings::Http { .. }) {
    return Err("remote context servers need a newer extension API".into());
}

Type guard

fn is_representable_on_old_api(s: &ContextServerSettings) -> bool {
    !matches!(s, ContextServerSettings::Http { .. })
}

Try / catch

match get_settings(None, "context_servers".into(), Some(key)) {
    Ok(json) => { /* ... */ }
    Err(e) if e.contains("remote context server") => { /* show upgrade hint, default settings */ }
    Err(e) => return Err(e),
}

Prevention

When it happens

Trigger: get_settings called with category "context_servers" and a key whose settings.json entry uses the `http`/remote variant, while the extension runs on bindings old enough to target the v0.6.0 shape.

Common situations: A user configures a remote (HTTP) context server in settings.json, then uses an extension compiled against an older extension API that asks for that server's settings.

Related errors


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