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

Missing cli_assets

Error message

Missing cli_assets

What it means

Error "Missing cli_assets" thrown in zellij-org/zellij.

Source

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

                        .color_registers
                        .into_iter()
                        .map(|cr| cr.try_into())
                        .collect::<Result<Vec<_>>>()?,
                })
            },
            Some(client_to_server_msg::Message::TerminalResize(resize)) => {
                Ok(ClientToServerMsg::TerminalResize {
                    new_size: resize
                        .new_size
                        .ok_or_else(|| anyhow!("Missing new_size"))?
                        .try_into()?,
                })
            },
            Some(client_to_server_msg::Message::FirstClientConnected(first_client)) => {
                Ok(ClientToServerMsg::FirstClientConnected {
                    cli_assets: first_client
                        .cli_assets
                        .ok_or_else(|| anyhow!("Missing cli_assets"))?
                        .try_into()?,
                    is_web_client: first_client.is_web_client,
                })
            },
            Some(client_to_server_msg::Message::AttachClient(attach)) => {
                Ok(ClientToServerMsg::AttachClient {
                    cli_assets: attach
                        .cli_assets
                        .ok_or_else(|| anyhow!("Missing cli_assets"))?
                        .try_into()?,
                    tab_position_to_focus: attach.tab_position_to_focus.map(|pos| pos as usize),
                    pane_to_focus: attach.pane_to_focus.map(|p| p.try_into()).transpose()?,
                    is_web_client: attach.is_web_client,
                })
            },
            Some(client_to_server_msg::Message::AttachWatcherClient(attach_watcher)) => {
                Ok(ClientToServerMsg::AttachWatcherClient {
                    terminal_size: attach_watcher

View on GitHub (pinned to e839bfffa5)

Solutions

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