zed-industries/zed · error
workspace was dropped
Error message
workspace was dropped
What it means
Guard in SoloDiffView::open_or_focus: the WeakEntity<Workspace> handle passed in could not be upgraded, meaning the workspace was closed while the diff view was being opened; the view cannot be registered as a workspace item.
Source
Thrown at crates/git_ui/src/solo_diff_view.rs:61
repo_path: RepoPath,
buffer: Entity<Buffer>,
diff: Entity<buffer_diff::BufferDiff>,
editor: Entity<SplittableEditor>,
workspace: WeakEntity<Workspace>,
showing_full_file: bool,
_settings_subscription: Subscription,
}
impl SoloDiffView {
pub fn open_or_focus(
entry: GitStatusEntry,
repository: Entity<Repository>,
workspace: WeakEntity<Workspace>,
window: &mut Window,
cx: &mut App,
) -> Task<Result<Entity<Self>>> {
let Some(workspace_entity) = workspace.upgrade() else {
return Task::ready(Err(anyhow::anyhow!("workspace was dropped")));
};
let existing = workspace_entity
.read(cx)
.items_of_type::<SoloDiffView>(cx)
.find(|item| item.read(cx).matches(&repository, &entry.repo_path, cx));
if let Some(existing) = existing {
workspace_entity.update(cx, |workspace, cx| {
workspace.activate_item(&existing, true, true, window, cx);
});
existing.focus_handle(cx).focus(window, cx);
return Task::ready(Ok(existing));
}
let Some(project_path) = repository
.read(cx)
.repo_path_to_project_path(&entry.repo_path, cx)
else {View on GitHub (pinned to f4178619ac)
Solutions
- Retry opening the diff view after the workspace has finished loading
- Re-trigger the action from within an active workspace window
- If it recurs, check that the item is not being opened from a dropped/closed window context
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at crates/git_ui/src/solo_diff_view.rs:61 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/54e7fbf9caf3a566.
Report an issue: GitHub.