zed-industries/zed · error · anyhow::Error

action::Sequence cannot be built directly

Error message

action::Sequence cannot be built directly

What it means

ActionSequence::build() is intentionally unimplementable: action::Sequence exists only as a parsed keymap construct and can never be constructed directly from a single keymap JSON value, so build() always returns this error.

Source

Thrown at crates/settings/src/keymap_file.rs:1547

                    && self
                        .0
                        .iter()
                        .zip(other.0.iter())
                        .all(|(a, b)| a.partial_eq(b.as_ref()))
            })
    }

    fn boxed_clone(&self) -> Box<dyn Action> {
        Box::new(ActionSequence(
            self.0
                .iter()
                .map(|action| action.boxed_clone())
                .collect::<Vec<_>>(),
        ))
    }

    fn build(_value: Value) -> Result<Box<dyn Action>> {
        Err(anyhow::anyhow!(
            "{} cannot be built directly",
            Self::name_for_type()
        ))
    }

    fn action_json_schema(generator: &mut schemars::SchemaGenerator) -> Option<schemars::Schema> {
        let keymap_action_schema = generator.subschema_for::<KeymapAction>();
        Some(json_schema!({
            "type": "array",
            "items": keymap_action_schema
        }))
    }

    fn deprecated_aliases() -> &'static [&'static str] {
        &[]
    }

    fn deprecation_message() -> Option<&'static str> {

View on GitHub (pinned to f4178619ac)

Solutions

  1. Use the array syntax for sequences instead of a named single action
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/settings/src/keymap_file.rs:1547 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/a2d3f60e351cae60. Report an issue: GitHub.