zellij-org/zellij · error

Run missing run_type

Error message

Run missing run_type

What it means

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

Source

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

                    cwd: f.cwd.map(std::path::PathBuf::from),
                },
            )),
        }
    }
}

// Run reverse conversion
impl TryFrom<crate::client_server_contract::client_server_contract::Run>
    for crate::input::layout::Run
{
    type Error = anyhow::Error;

    fn try_from(run: crate::client_server_contract::client_server_contract::Run) -> Result<Self> {
        use crate::client_server_contract::client_server_contract::run::RunType;

        let run_type = run
            .run_type
            .ok_or_else(|| anyhow!("Run missing run_type"))?;
        match run_type {
            RunType::Command(cmd) => Ok(crate::input::layout::Run::Command(
                crate::input::command::RunCommand {
                    command: std::path::PathBuf::from(cmd.command),
                    args: cmd.args,
                    cwd: cmd.cwd.map(std::path::PathBuf::from),
                    hold_on_close: cmd.hold_on_close,
                    hold_on_start: cmd.hold_on_start,
                    originating_plugin: cmd
                        .originating_plugin
                        .map(|op| op.try_into())
                        .transpose()?,
                    use_terminal_title: cmd.use_terminal_title,
                },
            )),
            RunType::EditFile(edit) => Ok(crate::input::layout::Run::EditFile(
                std::path::PathBuf::from(edit.file_path),
                edit.line_number.map(|n| n as usize),

View on GitHub (pinned to e839bfffa5)

Solutions

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