zed-industries/zed · error

Action '{}' not found

Error message

Action '{}' not found

What it means

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.

Source

Thrown at crates/keymap_editor/src/keymap_editor.rs:2731

        } else {
            self.error = Some(error);
            cx.notify();
            true
        }
    }

    fn get_selected_action_name(&self, cx: &App) -> anyhow::Result<&'static str> {
        if let Some(selector) = self.action_editor.as_ref() {
            let action_name_str = selector.read(cx).text(cx);

            if action_name_str.is_empty() {
                anyhow::bail!("Action name is required");
            }

            self.action_name_to_static
                .get(&action_name_str)
                .copied()
                .ok_or_else(|| anyhow::anyhow!("Action '{}' not found", action_name_str))
        } else {
            Ok(self.editing_keybind.action().name)
        }
    }

    fn validate_action_arguments(&self, cx: &App) -> anyhow::Result<Option<String>> {
        let action_name = self.get_selected_action_name(cx)?;
        let action_arguments = self
            .action_arguments_editor
            .as_ref()
            .map(|arguments_editor| arguments_editor.read(cx).editor.read(cx).text(cx))
            .filter(|args| !args.is_empty());

        let value = action_arguments
            .as_ref()
            .map(|args| {
                serde_json::from_str(args).context("Failed to parse action arguments as JSON")
            })

View on GitHub (pinned to 9d272b0363)

Solutions

  1. Pick the action from the editor's completion list instead of typing a free-form name
  2. Correct any typo in the action name (names are case-sensitive and namespaced, e.g. workspace::Save)
  3. Verify the action exists in this build; some actions are feature-gated
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/keymap_editor/src/keymap_editor.rs:2727 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/7eb678f267637375. Report an issue: GitHub.