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

MouseEvent missing event

Error message

MouseEvent missing event

What it means

Error "MouseEvent missing event" thrown in zellij-org/zellij.

Source

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

                Ok(crate::input::actions::Action::LaunchPlugin {
                    plugin: launch_plugin_action
                        .plugin
                        .ok_or_else(|| anyhow!("LaunchPlugin missing plugin"))?
                        .try_into()?,
                    should_float: launch_plugin_action.should_float,
                    should_open_in_place: launch_plugin_action.should_open_in_place,
                    close_replaced_pane: launch_plugin_action.close_replaced_pane,
                    skip_cache: launch_plugin_action.skip_cache,
                    cwd: launch_plugin_action.cwd.map(PathBuf::from),
                    no_focus: launch_plugin_action.no_focus,
                    tab_id: launch_plugin_action.tab_id.map(|t| t as usize),
                })
            },
            ActionType::MouseEvent(mouse_event_action) => {
                Ok(crate::input::actions::Action::MouseEvent {
                    event: mouse_event_action
                        .event
                        .ok_or_else(|| anyhow!("MouseEvent missing event"))?
                        .try_into()?,
                })
            },
            ActionType::Copy(_) => Ok(crate::input::actions::Action::Copy),
            ActionType::Confirm(_) => Ok(crate::input::actions::Action::Confirm),
            ActionType::Deny(_) => Ok(crate::input::actions::Action::Deny),
            ActionType::SkipConfirm(skip_confirm_action) => {
                Ok(crate::input::actions::Action::SkipConfirm {
                    action: Box::new(
                        skip_confirm_action
                            .action
                            .ok_or_else(|| anyhow!("SkipConfirm missing action"))?
                            .as_ref()
                            .clone()
                            .try_into()?,
                    ),
                })
            },

View on GitHub (pinned to e839bfffa5)

Solutions

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