zellij-org/zellij · error
FloatingCoordinate missing coordinate_type
Error message
FloatingCoordinate missing coordinate_type
What it means
Error "FloatingCoordinate missing coordinate_type" thrown in zellij-org/zellij.
Source
Thrown at zellij-utils/src/ipc/protobuf_conversion.rs:3777
crate::input::layout::SplitSize::Fixed(f) => Self {
coordinate_type: Some(crate::client_server_contract::client_server_contract::floating_coordinate::CoordinateType::Fixed(f as u32)),
},
}
}
}
// Reverse FloatingCoordinate conversion
impl TryFrom<crate::client_server_contract::client_server_contract::FloatingCoordinate>
for crate::input::layout::SplitSize
{
type Error = anyhow::Error;
fn try_from(
coord: crate::client_server_contract::client_server_contract::FloatingCoordinate,
) -> Result<Self> {
use crate::client_server_contract::client_server_contract::floating_coordinate::CoordinateType;
match coord
.coordinate_type
.ok_or_else(|| anyhow!("FloatingCoordinate missing coordinate_type"))?
{
CoordinateType::Percent(p) => Ok(crate::input::layout::SplitSize::Percent(p as usize)),
CoordinateType::Fixed(f) => Ok(crate::input::layout::SplitSize::Fixed(f as usize)),
}
}
}
// FloatingCoordinate conversion - PercentOrFixed to FloatingCoordinate
impl From<crate::input::layout::PercentOrFixed>
for crate::client_server_contract::client_server_contract::FloatingCoordinate
{
fn from(size: crate::input::layout::PercentOrFixed) -> Self {
match size {
crate::input::layout::PercentOrFixed::Percent(p) => Self {
coordinate_type: Some(crate::client_server_contract::client_server_contract::floating_coordinate::CoordinateType::Percent(p as f32)),
},
crate::input::layout::PercentOrFixed::Fixed(f) => Self {
coordinate_type: Some(crate::client_server_contract::client_server_contract::floating_coordinate::CoordinateType::Fixed(f as u32)),View on GitHub (pinned to e839bfffa5)
Solutions
- Include the required 'coordinate_type' 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/a85fb9aae476c9f0.
Report an issue: GitHub.