zellij-org/zellij · error · anyhow::Error
NewTiledPluginPane missing plugin
Error message
NewTiledPluginPane missing plugin
What it means
Error "NewTiledPluginPane missing plugin" thrown in zellij-org/zellij.
Solutions
- Include the required 'plugin' field in the protobuf message before sending it.
- 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/cfcbfa658953ac87.
Report an issue: GitHub.
Appendix: source
Thrown at zellij-utils/src/ipc/protobuf_conversion.rs:2740
Ok(crate::input::actions::Action::OverrideLayout {
tabs: override_layout_action
.tabs
.into_iter()
.map(|t| t.try_into())
.collect::<Result<Vec<_>>>()?,
retain_existing_terminal_panes: override_layout_action
.retain_existing_terminal_panes,
retain_existing_plugin_panes: override_layout_action
.retain_existing_plugin_panes,
apply_only_to_active_tab: override_layout_action.apply_only_to_active_tab,
})
},
ActionType::QueryTabNames(_) => Ok(crate::input::actions::Action::QueryTabNames),
ActionType::NewTiledPluginPane(new_tiled_plugin_action) => {
Ok(crate::input::actions::Action::NewTiledPluginPane {
plugin: new_tiled_plugin_action
.plugin
.ok_or_else(|| anyhow!("NewTiledPluginPane missing plugin"))?
.try_into()?,
pane_name: new_tiled_plugin_action.pane_name,
skip_cache: new_tiled_plugin_action.skip_cache,
cwd: new_tiled_plugin_action.cwd.map(PathBuf::from),
no_focus: new_tiled_plugin_action.no_focus,
tab_id: new_tiled_plugin_action.tab_id.map(|t| t as usize),
})
},
ActionType::NewFloatingPluginPane(new_floating_plugin_action) => {
Ok(crate::input::actions::Action::NewFloatingPluginPane {
plugin: new_floating_plugin_action
.plugin
.ok_or_else(|| anyhow!("NewFloatingPluginPane missing plugin"))?
.try_into()?,
pane_name: new_floating_plugin_action.pane_name,
skip_cache: new_floating_plugin_action.skip_cache,
cwd: new_floating_plugin_action.cwd.map(PathBuf::from),
coordinates: new_floating_plugin_actionView on GitHub (pinned to e839bfffa5)