zed-industries/zed · error
no such entry
Error message
no such entry
What it means
Returned by copy_entry when the source worktree exists but has no entry for the given ProjectEntryId (entry already deleted or ids stale). The old entry is the fault; the copy operation aborts with this sentinel.
Source
Thrown at crates/project/src/worktree_store.rs:549
}
pub fn entry_for_path<'a>(&'a self, path: &ProjectPath, cx: &'a App) -> Option<&'a Entry> {
self.worktree_for_id(path.worktree_id, cx)?
.read(cx)
.entry_for_path(&path.path)
}
pub fn copy_entry(
&mut self,
entry_id: ProjectEntryId,
new_project_path: ProjectPath,
cx: &mut Context<Self>,
) -> Task<Result<Option<Entry>>> {
let Some(old_worktree) = self.worktree_for_entry(entry_id, cx) else {
return Task::ready(Err(anyhow!("no such worktree")));
};
let Some(old_entry) = old_worktree.read(cx).entry_for_id(entry_id) else {
return Task::ready(Err(anyhow!("no such entry")));
};
let Some(new_worktree) = self.worktree_for_id(new_project_path.worktree_id, cx) else {
return Task::ready(Err(anyhow!("no such worktree")));
};
match &self.state {
WorktreeStoreState::Local { fs } => {
let old_abs_path = old_worktree.read(cx).absolutize(&old_entry.path);
let new_abs_path = new_worktree.read(cx).absolutize(&new_project_path.path);
let fs = fs.clone();
let copy = cx.background_spawn(async move {
copy_recursive(
fs.as_ref(),
&old_abs_path,
&new_abs_path,
Default::default(),
)
.awaitView on GitHub (pinned to f4178619ac)
Solutions
- Refresh the project tree so entry ids are current
- Retry the copy with an existing entry
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at crates/project/src/worktree_store.rs:549 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of zed-industries/zed@f4178619ac (2026-08-20).
Data as JSON: /api/errors/373c56a3a3fd45ca.
Report an issue: GitHub.