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
- Update the extension's extension_api_version to a release whose bindings model remote context servers
- Reconfigure the context server entry in settings.json as a stdio command or extension-provided server
- 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
- Document stdio/extension context servers as the supported variants for older extension APIs
- Keep extension_api_version current so Http-variant settings never reach the downconversion
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
- DAP returned IPv6 host {addr}, which the v0.6.0 extension AP
- Unknown settings category: {}
- Unknown settings category: {}
- Expected exactly one context server configuration
- `context_server_command` not available prior to v0.2.0
AI-assisted analysis of zed-industries/zed@5a9b9558db (2026-08-20).
Data as JSON: /api/errors/fbe53863e3cdb1bd.
Report an issue: GitHub.