{"record":{"id":"321daa4f82e2cecf","repo":"zellij-org/zellij","slug":"percentorfixed-missing-size-type","errorCode":null,"errorMessage":"PercentOrFixed missing size_type","messagePattern":"PercentOrFixed missing size_type","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"zellij-utils/src/ipc/protobuf_conversion.rs","lineNumber":4570,"sourceCode":"            RunType::Plugin(plugin) => Ok(crate::input::layout::Run::Plugin(plugin.try_into()?)),\n        }\n    }\n}\n\n// PercentOrFixed reverse conversion\nimpl TryFrom<crate::client_server_contract::client_server_contract::PercentOrFixed>\n    for crate::input::layout::PercentOrFixed\n{\n    type Error = anyhow::Error;\n\n    fn try_from(\n        value: crate::client_server_contract::client_server_contract::PercentOrFixed,\n    ) -> Result<Self> {\n        use crate::client_server_contract::client_server_contract::percent_or_fixed::SizeType;\n\n        let size_type = value\n            .size_type\n            .ok_or_else(|| anyhow!(\"PercentOrFixed missing size_type\"))?;\n        match size_type {\n            SizeType::Percent(percent) => Ok(crate::input::layout::PercentOrFixed::Percent(\n                percent as usize,\n            )),\n            SizeType::Fixed(fixed) => {\n                Ok(crate::input::layout::PercentOrFixed::Fixed(fixed as usize))\n            },\n        }\n    }\n}\n\n// ===== REVERSE CONVERSIONS =====\n\n// MouseEvent reverse conversion\nimpl TryFrom<crate::client_server_contract::client_server_contract::MouseEvent>\n    for crate::input::mouse::MouseEvent\n{\n    type Error = anyhow::Error;","sourceCodeStart":4552,"sourceCodeEnd":4588,"githubUrl":"https://github.com/zellij-org/zellij/blob/e839bfffa586992364309a685b2c71f3b23c247e/zellij-utils/src/ipc/protobuf_conversion.rs#L4552-L4588","documentation":"Error \"PercentOrFixed missing size_type\" 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 'size_type' 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-14T05:17:10.506Z"}