zellij-org/zellij · error
Invalid SearchDirection: {}
Error message
Invalid SearchDirection: {} What it means
Error "Invalid SearchDirection: {}" thrown in zellij-org/zellij.
Source
Thrown at zellij-utils/src/ipc/protobuf_conversion.rs:3608
x if x == ProtoDirection::Up as i32 => ProtoDirection::Up,
x if x == ProtoDirection::Down as i32 => ProtoDirection::Down,
_ => return Err(anyhow!("Invalid Direction: {}", direction)),
};
match proto_direction {
ProtoDirection::Left => Ok(crate::data::Direction::Left),
ProtoDirection::Right => Ok(crate::data::Direction::Right),
ProtoDirection::Up => Ok(crate::data::Direction::Up),
ProtoDirection::Down => Ok(crate::data::Direction::Down),
ProtoDirection::Unspecified => Err(anyhow!("Unspecified direction")),
}
}
fn proto_i32_to_search_direction(direction: i32) -> Result<crate::input::actions::SearchDirection> {
use crate::client_server_contract::client_server_contract::SearchDirection as ProtoSearchDirection;
let proto_direction = match direction {
x if x == ProtoSearchDirection::Up as i32 => ProtoSearchDirection::Up,
x if x == ProtoSearchDirection::Down as i32 => ProtoSearchDirection::Down,
_ => return Err(anyhow!("Invalid SearchDirection: {}", direction)),
};
match proto_direction {
ProtoSearchDirection::Up => Ok(crate::input::actions::SearchDirection::Up),
ProtoSearchDirection::Down => Ok(crate::input::actions::SearchDirection::Down),
ProtoSearchDirection::Unspecified => Err(anyhow!("Unspecified search direction")),
}
}
fn proto_i32_to_search_option(option: i32) -> Result<crate::input::actions::SearchOption> {
use crate::client_server_contract::client_server_contract::SearchOption as ProtoSearchOption;
let proto_option = match option {
x if x == ProtoSearchOption::CaseSensitivity as i32 => ProtoSearchOption::CaseSensitivity,
x if x == ProtoSearchOption::WholeWord as i32 => ProtoSearchOption::WholeWord,
x if x == ProtoSearchOption::Wrap as i32 => ProtoSearchOption::Wrap,
_ => return Err(anyhow!("Invalid SearchOption: {}", option)),
};
match proto_option {
ProtoSearchOption::CaseSensitivity => {View on GitHub (pinned to e839bfffa5)
Solutions
- Validate the value against the allowed enum range before constructing the message.
- Ensure client and server use matching protobuf definitions; regenerate bindings if versions differ.
When it happens
Trigger: Occurs when a protobuf enum value received over IPC has no matching variant; conversion rejects the unknown value.
Common situations: Typical of version skew between client and server, or a malformed/corrupted IPC message.
AI-assisted analysis of zellij-org/zellij@e839bfffa5 (2026-08-19).
Data as JSON: /api/errors/094cfc5c9ee5f204.
Report an issue: GitHub.