zellij-org/zellij · error · anyhow::Error
Character key missing character data
Error message
Character key missing character data
What it means
Error "Character key missing character data" thrown in zellij-org/zellij.
Solutions
- Include the required 'character data' 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/cc8e055ba5fa43be.
Report an issue: GitHub.
Appendix: source
Thrown at zellij-utils/src/ipc/protobuf_conversion.rs:3251
}
impl TryFrom<crate::client_server_contract::client_server_contract::KeyWithModifier>
for crate::data::KeyWithModifier
{
type Error = anyhow::Error;
fn try_from(
key: crate::client_server_contract::client_server_contract::KeyWithModifier,
) -> Result<Self> {
use crate::ipc::enum_conversions::{bare_key_from_proto_i32, key_modifier_from_proto_i32};
use std::collections::BTreeSet;
// Handle character keys specially
let bare_key = if key.bare_key
== crate::client_server_contract::client_server_contract::BareKey::Char as i32
{
let character_str = key
.character
.ok_or_else(|| anyhow!("Character key missing character data"))?;
let character = character_str
.chars()
.next()
.ok_or_else(|| anyhow!("Empty character string"))?;
crate::data::BareKey::Char(character)
} else {
bare_key_from_proto_i32(key.bare_key)?
};
let key_modifiers: Result<BTreeSet<_>> = key
.key_modifiers
.into_iter()
.map(|modifier| key_modifier_from_proto_i32(modifier))
.collect();
Ok(Self {
bare_key,
key_modifiers: key_modifiers?,View on GitHub (pinned to e839bfffa5)