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

ScrollDownAt missing position

Error message

ScrollDownAt missing position

What it means

Error "ScrollDownAt missing position" thrown in zellij-org/zellij.

Source

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

                Ok(crate::input::actions::Action::SelectCommandAtScrollPosition)
            },
            ActionType::CopyLastCommandOutput(_) => {
                Ok(crate::input::actions::Action::CopyLastCommandOutput)
            },
            ActionType::ScrollUpAt(scroll_action) => {
                Ok(crate::input::actions::Action::ScrollUpAt {
                    position: scroll_action
                        .position
                        .ok_or_else(|| anyhow!("ScrollUpAt missing position"))?
                        .try_into()?,
                })
            },
            ActionType::ScrollDown(_) => Ok(crate::input::actions::Action::ScrollDown),
            ActionType::ScrollDownAt(scroll_action) => {
                Ok(crate::input::actions::Action::ScrollDownAt {
                    position: scroll_action
                        .position
                        .ok_or_else(|| anyhow!("ScrollDownAt missing position"))?
                        .try_into()?,
                })
            },
            ActionType::ScrollToBottom(_) => Ok(crate::input::actions::Action::ScrollToBottom),
            ActionType::ScrollToTop(_) => Ok(crate::input::actions::Action::ScrollToTop),
            ActionType::PageScrollUp(_) => Ok(crate::input::actions::Action::PageScrollUp),
            ActionType::PageScrollDown(_) => Ok(crate::input::actions::Action::PageScrollDown),
            ActionType::HalfPageScrollUp(_) => Ok(crate::input::actions::Action::HalfPageScrollUp),
            ActionType::HalfPageScrollDown(_) => {
                Ok(crate::input::actions::Action::HalfPageScrollDown)
            },
            ActionType::ToggleFocusFullscreen(_) => {
                Ok(crate::input::actions::Action::ToggleFocusFullscreen)
            },
            ActionType::ToggleFocusNoUiFullscreen(_) => {
                Ok(crate::input::actions::Action::ToggleFocusNoUiFullscreen)
            },
            ActionType::TogglePaneFrames(_) => Ok(crate::input::actions::Action::TogglePaneFrames),

View on GitHub (pinned to e839bfffa5)

Solutions

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