zed-industries/zed · error
Dev servers were removed in v0.157.x please upgrade to SSH r
Error message
Dev servers were removed in v0.157.x please upgrade to SSH remoting: https://zed.dev/docs/remote-development
What it means
Zed's CLI rejects the removed --dev-server-token flag. Dev servers were deleted in v0.157.x and replaced by SSH-based remote development, so an anyhow::ensure! aborts whenever the flag is present. The message exists purely to fail fast and point users at the migration path.
Source
Thrown at crates/cli/src/main.rs:694
urls.push(path.to_string());
} else if path == "-" && args.paths_with_position.len() == 1 {
let file = NamedTempFile::new()?;
paths.push(file.path().to_string_lossy().into_owned());
let (file, _) = file.keep()?;
stdin_tmp_file = Some(file);
} else if let Some(file) = anonymous_fd(path) {
let tmp_file = NamedTempFile::new()?;
paths.push(tmp_file.path().to_string_lossy().into_owned());
let (tmp_file, _) = tmp_file.keep()?;
anonymous_fd_tmp_files.push((file, tmp_file));
} else if let Some(wsl) = wsl {
urls.push(format!("file://{}", parse_path_in_wsl(path, wsl)?));
} else {
paths.push(parse_path_with_position(path)?);
}
}
anyhow::ensure!(
args.dev_server_token.is_none(),
"Dev servers were removed in v0.157.x please upgrade to SSH remoting: https://zed.dev/docs/remote-development"
);
rayon::ThreadPoolBuilder::new()
.num_threads(4)
.stack_size(10 * 1024 * 1024)
.thread_name(|ix| format!("RayonWorker{}", ix))
.build_global()
.unwrap();
let sender: JoinHandle<anyhow::Result<()>> = thread::Builder::new()
.name("CliReceiver".to_string())
.spawn({
let exit_status = exit_status.clone();
let user_data_dir_for_thread = user_data_dir.clone();
move || {
let (_, handshake) = server.accept().context("Handshake after Zed spawn")?;View on GitHub (pinned to bc538def45)
Solutions
- Remove --dev-server-token from your scripts and migrate to SSH remoting (https://zed.dev/docs/remote-development): connect to the remote host over SSH from Zed's project panel or `ssh user@host zed --host`
- If you cannot migrate yet, pin Zed to a version before v0.157.x where dev servers still work
- Audit wrapper scripts/CI for other removed dev-server subcommands and flags from the same release
Example fix
# before zed --dev-server-token my-server --port 0 # after (SSH remoting) ssh user@host 'zed --host' # then open the remote project from Zed's remote project panel
Defensive patterns
Strategy: validation
Validate before calling
# guard in shell scripts before invoking zed if printf '%s' "$ZED_ARGS" | grep -q -- '--dev-server-token'; then echo "refusing: --dev-server-token removed in v0.157.x; migrate to SSH remoting" >&2 exit 2 fi zed $ZED_ARGS
Prevention
- Pin the Zed version in CI so a removal cannot surprise the pipeline
- Centralize all zed CLI invocations in one wrapper script for easy migration
- Subscribe to Zed release notes for deprecations before upgrading
When it happens
Trigger: Any CLI invocation that still passes --dev-server-token (e.g. `zed --dev-server-token <name> ...`), typically from old headless dev-server scripts, CI pipelines, or wrapper tools written against pre-0.157 Zed.
Common situations: Teams with automation that bootstrapped remote dev servers on VMs/containers before upgrading; users who upgraded the zed binary but kept old shell scripts; docs or blog posts referencing the legacy flag.
Related errors
- unknown benchmark '{benchmark_id}' (valid: {valid})
- unknown benchmark '{selector}' (valid: {valid})
- could not locate run '{run_id}' in the local run index ({run
- unknown judge preset '{name}' (valid: {valid})
- unknown SWE-Atlas part '{part}' (valid: {valid})
AI-assisted analysis of zed-industries/zed@bc538def45 (2026-08-16).
Data as JSON: /api/errors/bababe011de71a7d.
Report an issue: GitHub.