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

EditFile missing payload

Error message

EditFile missing payload

What it means

Error "EditFile missing payload" thrown in zellij-org/zellij.

Source

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

                )
                .map_err(|e| anyhow!("{}", e))?;
                Ok(crate::input::actions::Action::SetPaneFrameStyle(style))
            },
            ActionType::ToggleActiveSyncTab(_) => {
                Ok(crate::input::actions::Action::ToggleActiveSyncTab)
            },
            ActionType::NewPane(new_pane_action) => Ok(crate::input::actions::Action::NewPane {
                direction: new_pane_action
                    .direction
                    .map(|d| proto_i32_to_direction(d))
                    .transpose()?,
                pane_name: new_pane_action.pane_name,
                start_suppressed: new_pane_action.start_suppressed,
            }),
            ActionType::EditFile(edit_file_action) => Ok(crate::input::actions::Action::EditFile {
                payload: edit_file_action
                    .payload
                    .ok_or_else(|| anyhow!("EditFile missing payload"))?
                    .try_into()?,
                direction: edit_file_action
                    .direction
                    .map(|d| proto_i32_to_direction(d))
                    .transpose()?,
                floating: edit_file_action.floating,
                in_place: edit_file_action.in_place,
                close_replaced_pane: edit_file_action.close_replaced_pane,
                start_suppressed: edit_file_action.start_suppressed,
                coordinates: edit_file_action
                    .coordinates
                    .map(|c| c.try_into())
                    .transpose()?,
                near_current_pane: edit_file_action.near_current_pane,
                no_focus: edit_file_action.no_focus,
                tab_id: edit_file_action.tab_id.map(|t| t as usize),
            }),
            ActionType::NewFloatingPane(new_floating_action) => {

View on GitHub (pinned to e839bfffa5)

Solutions

  1. Include the required 'payload' 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/bfd62bbd96049acb. Report an issue: GitHub.