{"record":{"id":"2c47dd023409528c","repo":"zed-industries/zed","slug":"no-keybinding-editor-to-deserialize","errorCode":null,"errorMessage":"No keybinding editor to deserialize","messagePattern":"No keybinding editor to deserialize","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/keymap_editor/src/keymap_editor.rs","lineNumber":3958,"sourceCode":"    ) -> gpui::Task<gpui::Result<()>> {\n        let db = KeybindingEditorDb::global(cx);\n        workspace::delete_unloaded_items(alive_items, workspace_id, \"keybinding_editors\", &db, cx)\n    }\n\n    fn deserialize(\n        _project: Entity<project::Project>,\n        workspace: WeakEntity<Workspace>,\n        workspace_id: workspace::WorkspaceId,\n        item_id: workspace::ItemId,\n        window: &mut Window,\n        cx: &mut App,\n    ) -> gpui::Task<gpui::Result<Entity<Self>>> {\n        let db = KeybindingEditorDb::global(cx);\n        window.spawn(cx, async move |cx| {\n            if db.get_keybinding_editor(item_id, workspace_id)?.is_some() {\n                cx.update(|window, cx| cx.new(|cx| KeymapEditor::new(workspace, window, cx)))\n            } else {\n                Err(anyhow!(\"No keybinding editor to deserialize\"))\n            }\n        })\n    }\n\n    fn serialize(\n        &mut self,\n        workspace: &mut Workspace,\n        item_id: workspace::ItemId,\n        _closing: bool,\n        cx: &mut ui::Context<Self>,\n    ) -> Option<gpui::Task<gpui::Result<()>>> {\n        let workspace_id = workspace.database_id()?;\n        let db = KeybindingEditorDb::global(cx);\n        Some(cx.background_spawn(\n            async move { db.save_keybinding_editor(item_id, workspace_id).await },\n        ))\n    }\n","sourceCodeStart":3940,"sourceCodeEnd":3976,"githubUrl":"https://github.com/zed-industries/zed/blob/9d272b036335401f339d024ea94968fd51016c40/crates/keymap_editor/src/keymap_editor.rs#L3940-L3976","documentation":"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.","triggerScenarios":"Thrown at crates/keymap_editor/src/keymap_editor.rs:3954 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"9d272b036335401f339d024ea94968fd51016c40","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}