{"record":{"id":"abefd1d85439e870","repo":"zellij-org/zellij","slug":"missing-action","errorCode":null,"errorMessage":"Missing action","messagePattern":"Missing action","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"zellij-utils/src/ipc/protobuf_conversion.rs","lineNumber":274,"sourceCode":"                        .try_into()?,\n                    tab_position_to_focus: attach.tab_position_to_focus.map(|pos| pos as usize),\n                    pane_to_focus: attach.pane_to_focus.map(|p| p.try_into()).transpose()?,\n                    is_web_client: attach.is_web_client,\n                })\n            },\n            Some(client_to_server_msg::Message::AttachWatcherClient(attach_watcher)) => {\n                Ok(ClientToServerMsg::AttachWatcherClient {\n                    terminal_size: attach_watcher\n                        .terminal_size\n                        .ok_or_else(|| anyhow::anyhow!(\"Missing terminal_size\"))?\n                        .try_into()?,\n                    is_web_client: attach_watcher.is_web_client,\n                })\n            },\n            Some(client_to_server_msg::Message::Action(action)) => Ok(ClientToServerMsg::Action {\n                action: action\n                    .action\n                    .ok_or_else(|| anyhow!(\"Missing action\"))?\n                    .try_into()?,\n                terminal_id: action.terminal_id,\n                client_id: action.client_id.map(|id| id as u16),\n                is_cli_client: action.is_cli_client,\n            }),\n            Some(client_to_server_msg::Message::Key(key)) => Ok(ClientToServerMsg::Key {\n                key: key.key.ok_or_else(|| anyhow!(\"Missing key\"))?.try_into()?,\n                raw_bytes: key.raw_bytes.into_iter().map(|b| b as u8).collect(),\n                is_kitty_keyboard_protocol: key.is_kitty_keyboard_protocol,\n            }),\n            Some(client_to_server_msg::Message::ClientExited(_)) => {\n                Ok(ClientToServerMsg::ClientExited)\n            },\n            Some(client_to_server_msg::Message::KillSession(_)) => {\n                Ok(ClientToServerMsg::KillSession)\n            },\n            Some(client_to_server_msg::Message::ConnStatus(_)) => Ok(ClientToServerMsg::ConnStatus),\n            Some(client_to_server_msg::Message::WebServerStarted(web_server)) => {","sourceCodeStart":256,"sourceCodeEnd":292,"githubUrl":"https://github.com/zellij-org/zellij/blob/e839bfffa586992364309a685b2c71f3b23c247e/zellij-utils/src/ipc/protobuf_conversion.rs#L256-L292","documentation":"Error \"Missing action\" thrown in zellij-org/zellij.","triggerScenarios":"Occurs when a protobuf message received over IPC omits the required field; deserialization fails instead of using a default.","commonSituations":"Occurs when a client or plugin sends an incompletely populated message, often from a version mismatch or hand-crafted payload.","solutions":["Include the required 'action' field in the protobuf message before sending it.","Verify the sender populates all mandatory fields; add a presence check before conversion."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e839bfffa586992364309a685b2c71f3b23c247e","analyzedAt":"2026-08-19T07:42:58.758Z","contentChangedAt":"2026-08-19T07:42:58.758Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}