{"record":{"id":"4c2c3aa9a31b19d0","repo":"zellij-org/zellij","slug":"missing-key","errorCode":null,"errorMessage":"Missing key","messagePattern":"Missing key","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"zellij-utils/src/ipc/protobuf_conversion.rs","lineNumber":281,"sourceCode":"                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)) => {\n                Ok(ClientToServerMsg::WebServerStarted {\n                    base_url: web_server.base_url,\n                })\n            },\n            Some(client_to_server_msg::Message::FailedToStartWebServer(failed)) => {\n                Ok(ClientToServerMsg::FailedToStartWebServer {\n                    error: failed.error,","sourceCodeStart":263,"sourceCodeEnd":299,"githubUrl":"https://github.com/zellij-org/zellij/blob/e839bfffa586992364309a685b2c71f3b23c247e/zellij-utils/src/ipc/protobuf_conversion.rs#L263-L299","documentation":"Error \"Missing key\" 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 'key' 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"}