zellij-org/zellij · error

CommandOrPlugin missing command_or_plugin_type

Error message

CommandOrPlugin missing command_or_plugin_type

What it means

Error "CommandOrPlugin missing command_or_plugin_type" thrown in zellij-org/zellij.

Source

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

                })),
            },
        }
    }
}

impl TryFrom<crate::client_server_contract::client_server_contract::CommandOrPlugin>
    for crate::data::CommandOrPlugin
{
    type Error = anyhow::Error;

    fn try_from(
        proto: crate::client_server_contract::client_server_contract::CommandOrPlugin,
    ) -> Result<Self> {
        use crate::client_server_contract::client_server_contract::command_or_plugin::CommandOrPluginType;

        let cmd_or_plugin_type = proto
            .command_or_plugin_type
            .ok_or_else(|| anyhow!("CommandOrPlugin missing command_or_plugin_type"))?;
        match cmd_or_plugin_type {
            CommandOrPluginType::Command(cmd) => {
                Ok(crate::data::CommandOrPlugin::Command(cmd.try_into()?))
            },
            CommandOrPluginType::Plugin(plugin) => {
                Ok(crate::data::CommandOrPlugin::Plugin(plugin.try_into()?))
            },
            CommandOrPluginType::File(f) => Ok(crate::data::CommandOrPlugin::File(
                crate::data::FileToOpen {
                    path: std::path::PathBuf::from(&f.path),
                    line_number: f.line_number.map(|n| n as usize),
                    cwd: f.cwd.map(std::path::PathBuf::from),
                },
            )),
        }
    }
}

View on GitHub (pinned to e839bfffa5)

Solutions

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