zellij-org/zellij · error · anyhow::Error

Run missing command

Error message

Run missing command

What it means

Error "Run missing command" thrown in zellij-org/zellij.

Source

Thrown at zellij-utils/src/ipc/protobuf_conversion.rs:2623

                Ok(crate::input::actions::Action::GoToTabName {
                    name: go_to_tab_name_action.name,
                    create: go_to_tab_name_action.create,
                })
            },
            ActionType::ToggleTab(_) => Ok(crate::input::actions::Action::ToggleTab),
            ActionType::TabNameInput(tab_name_action) => {
                Ok(crate::input::actions::Action::TabNameInput {
                    input: tab_name_action.input.into_iter().map(|b| b as u8).collect(),
                })
            },
            ActionType::UndoRenameTab(_) => Ok(crate::input::actions::Action::UndoRenameTab),
            ActionType::MoveTab(move_tab_action) => Ok(crate::input::actions::Action::MoveTab {
                direction: proto_i32_to_direction(move_tab_action.direction)?,
            }),
            ActionType::Run(run_action) => Ok(crate::input::actions::Action::Run {
                command: run_action
                    .command
                    .ok_or_else(|| anyhow!("Run missing command"))?
                    .try_into()?,
                near_current_pane: run_action.near_current_pane,
                no_focus: run_action.no_focus,
            }),
            ActionType::Detach(_) => Ok(crate::input::actions::Action::Detach),
            ActionType::SetDarkTheme(_) => Ok(crate::input::actions::Action::SetDarkTheme),
            ActionType::SetLightTheme(_) => Ok(crate::input::actions::Action::SetLightTheme),
            ActionType::ToggleTheme(_) => Ok(crate::input::actions::Action::ToggleTheme),
            ActionType::SwitchSession(switch_session_action) => {
                Ok(crate::input::actions::Action::SwitchSession {
                    name: switch_session_action.name.clone(),
                    tab_position: switch_session_action.tab_position.map(|p| p as usize),
                    pane_id: switch_session_action
                        .pane_id
                        .as_ref()
                        .map(|p| (p.pane_id, p.is_plugin)),
                    layout: switch_session_action
                        .layout

View on GitHub (pinned to e839bfffa5)

Solutions

  1. Include the required 'command' field in the protobuf message before sending it.
  2. Verify the sender populates all mandatory fields; add a presence check before conversion.

When it happens

Trigger: Occurs when a protobuf message received over IPC omits the required field; deserialization fails instead of using a default.

Common situations: Occurs when a client or plugin sends an incompletely populated message, often from a version mismatch or hand-crafted payload.


AI-assisted analysis of zellij-org/zellij@e839bfffa5 (2026-08-19). Data as JSON: /api/errors/d15e4988279d2585. Report an issue: GitHub.