zed-industries/zed · error · RpcError
DevServerProjectPathDoesNotExist
DevServerProjectPathDoesNotExist
Error message
DevServerProjectPathDoesNotExist
What it means
On the remote server, handle_add_worktree could not canonicalize the requested path and the error code DevServerProjectPathDoesNotExist is returned to indicate the path (nor its resolvable parent) exists on the remote host.
Source
Thrown at crates/remote_server/src/headless_project.rs:559
message: TypedEnvelope<proto::AddWorktree>,
mut cx: AsyncApp,
) -> Result<proto::AddWorktreeResponse> {
use client::ErrorCodeExt;
let fs = this.read_with(&cx, |this, _| this.fs.clone());
let path = PathBuf::from(shellexpand::tilde(&message.payload.path).to_string());
let canonicalized = match fs.canonicalize(&path).await {
Ok(path) => path,
Err(e) => {
let mut parent = path
.parent()
.ok_or(e)
.with_context(|| format!("{path:?} does not exist"))?;
if parent == Path::new("") {
parent = util::paths::home_dir();
}
let parent = fs.canonicalize(parent).await.map_err(|_| {
anyhow!(
proto::ErrorCode::DevServerProjectPathDoesNotExist
.with_tag("path", path.to_string_lossy().as_ref())
)
})?;
if let Some(file_name) = path.file_name() {
parent.join(file_name)
} else {
parent
}
}
};
let next_worktree_id = this
.update(&mut cx, |this, cx| {
this.worktree_store
.update(cx, |worktree_store, _| worktree_store.next_worktree_id())
})
.await?;
let worktree = thisView on GitHub (pinned to 9d272b0363)
Solutions
- Create the directory on the remote host first
- Check for typos or missing tilde-expansion in the path
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/remote_server/src/headless_project.rs:500 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of zed-industries/zed@9d272b0363 (2026-08-20).
Data as JSON: /api/errors/72e51aa469725452.
Report an issue: GitHub.