{"record":{"id":"7eb678f267637375","repo":"zed-industries/zed","slug":"action-not-found","errorCode":null,"errorMessage":"Action '{}' not found","messagePattern":"Action '(.+?)' not found","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/keymap_editor/src/keymap_editor.rs","lineNumber":2731,"sourceCode":"        } else {\n            self.error = Some(error);\n            cx.notify();\n            true\n        }\n    }\n\n    fn get_selected_action_name(&self, cx: &App) -> anyhow::Result<&'static str> {\n        if let Some(selector) = self.action_editor.as_ref() {\n            let action_name_str = selector.read(cx).text(cx);\n\n            if action_name_str.is_empty() {\n                anyhow::bail!(\"Action name is required\");\n            }\n\n            self.action_name_to_static\n                .get(&action_name_str)\n                .copied()\n                .ok_or_else(|| anyhow::anyhow!(\"Action '{}' not found\", action_name_str))\n        } else {\n            Ok(self.editing_keybind.action().name)\n        }\n    }\n\n    fn validate_action_arguments(&self, cx: &App) -> anyhow::Result<Option<String>> {\n        let action_name = self.get_selected_action_name(cx)?;\n        let action_arguments = self\n            .action_arguments_editor\n            .as_ref()\n            .map(|arguments_editor| arguments_editor.read(cx).editor.read(cx).text(cx))\n            .filter(|args| !args.is_empty());\n\n        let value = action_arguments\n            .as_ref()\n            .map(|args| {\n                serde_json::from_str(args).context(\"Failed to parse action arguments as JSON\")\n            })","sourceCodeStart":2713,"sourceCodeEnd":2749,"githubUrl":"https://github.com/zed-industries/zed/blob/9d272b036335401f339d024ea94968fd51016c40/crates/keymap_editor/src/keymap_editor.rs#L2713-L2749","documentation":"Validation in the keymap editor's get_selected_action_name: the action name typed/selected in the action editor is not a key in action_name_to_static, the map of registered action names to their static names. The user entered an action name that GPUI has no registration for, so the keybinding being edited would reference a non-existent action.","triggerScenarios":"Thrown at crates/keymap_editor/src/keymap_editor.rs:2727 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pick the action from the editor's completion list instead of typing a free-form name","Correct any typo in the action name (names are case-sensitive and namespaced, e.g. workspace::Save)","Verify the action exists in this build; some actions are feature-gated"],"exampleFix":null,"handlingStrategy":"validation","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-14T05:17:10.506Z"}