zed-industries/zed · error
No keybinding editor to deserialize
Error message
No keybinding editor to deserialize
What it means
Raised in the workspace item deserialization hook for the keymap editor: when restoring a previously opened KeymapEditor item from the workspace database, `db.get_keybinding_editor(item_id, workspace_id)` returned None, so there is no persisted editor state to restore for this item id. Usually the DB row was deleted, belongs to a stale workspace, or serialization never ran for that item.
Source
Thrown at crates/keymap_editor/src/keymap_editor.rs:3958
) -> gpui::Task<gpui::Result<()>> {
let db = KeybindingEditorDb::global(cx);
workspace::delete_unloaded_items(alive_items, workspace_id, "keybinding_editors", &db, cx)
}
fn deserialize(
_project: Entity<project::Project>,
workspace: WeakEntity<Workspace>,
workspace_id: workspace::WorkspaceId,
item_id: workspace::ItemId,
window: &mut Window,
cx: &mut App,
) -> gpui::Task<gpui::Result<Entity<Self>>> {
let db = KeybindingEditorDb::global(cx);
window.spawn(cx, async move |cx| {
if db.get_keybinding_editor(item_id, workspace_id)?.is_some() {
cx.update(|window, cx| cx.new(|cx| KeymapEditor::new(workspace, window, cx)))
} else {
Err(anyhow!("No keybinding editor to deserialize"))
}
})
}
fn serialize(
&mut self,
workspace: &mut Workspace,
item_id: workspace::ItemId,
_closing: bool,
cx: &mut ui::Context<Self>,
) -> Option<gpui::Task<gpui::Result<()>>> {
let workspace_id = workspace.database_id()?;
let db = KeybindingEditorDb::global(cx);
Some(cx.background_spawn(
async move { db.save_keybinding_editor(item_id, workspace_id).await },
))
}
View on GitHub (pinned to 9d272b0363)
Solutions
- Close the stale item; it has no persisted state to recover
- Reopen the keymap editor manually from the command palette
- If this recurs for every restart, check that serialize/save_keybinding_editor is committing rows to the keybinding_editors table
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at crates/keymap_editor/src/keymap_editor.rs:3954 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/2c47dd023409528c.
Report an issue: GitHub.