risingwavelabs/risingwave · error · HummockError
Meta error
Error message
Meta error: {0} What it means
A Hummock metadata operation failed and its error text is carried in the String payload. This covers meta-cell (version/manifest) read or decode failures inside storage code paths. It is thrown whenever meta-layer logic reports a failure without a dedicated variant.
Solutions
- Inspect the wrapped message to identify the failing meta operation.
- Verify manifest/version metadata integrity in the object store; restore from backup if corrupt.
- Ensure all nodes use a compatible RisingWave version for metadata formats.
- Restart the cluster to rebuild in-memory meta state, then re-check.
Defensive patterns
Strategy: try-catch
Try / catch
// Rust
match hummock_op() {
Err(e) if e.to_string().starts_with("Meta error") => {
// inspect wrapped message; verify manifest integrity before retry
}
r => r?,
} Prevention
- Back up hummock manifest/version metadata regularly.
- Avoid mixing binary versions against one object store.
- Alert on any object store write failures affecting manifest cells.
When it happens
Trigger: Reading/decoding hummock version deltas or manifest metadata cells where the meta layer returns an error string.
Common situations: Corrupt manifest/version data in object store; incompatible metadata format across versions; lost meta writes after an object store outage.
Understand the failure class
Background: Database query failed: Internal Server Error 500s wrapping SQL, Prisma, and connection failures — what to check first — this error's family across 16 libraries.
Related errors
- Barrier read is unavailable for now. Likely the cluster is…
- Change log retention miss: table
- Checksum mismatch: expected
- Committed epoch mismatch: table
- CompactionExecutor error
AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11).
Data as JSON: /api/errors/bcee5e8e33d25e98.
Report an issue: GitHub.
Appendix: source
Thrown at src/storage/src/hummock/error.rs:43
#[error("Magic number mismatch: expected {expected}, found: {found}")]
MagicMismatch { expected: u32, found: u32 },
#[error("Invalid format version: {0}")]
InvalidFormatVersion(u32),
#[error("Checksum mismatch: expected {expected}, found: {found}")]
ChecksumMismatch { expected: u64, found: u64 },
#[error("Invalid block")]
InvalidBlock,
#[error("Encode error: {0}")]
EncodeError(String),
#[error("Decode error: {0}")]
DecodeError(String),
#[error("ObjectStore failed with IO error: {0}")]
ObjectIoError(
#[from]
#[backtrace]
ObjectError,
),
#[error("Meta error: {0}")]
MetaError(String),
#[error("SharedBuffer error: {0}")]
SharedBufferError(String),
#[error("Wait epoch error: {0}")]
WaitEpoch(String),
#[error("Next epoch error: {0}")]
NextEpoch(String),
#[error("Change log retention miss: table {table_id}, epoch {epoch}")]
ChangeLogRetentionMiss { table_id: TableId, epoch: u64 },
#[error("Time-travel version expired: table {table_id}, epoch {epoch}")]
TimeTravelVersionExpired { table_id: TableId, epoch: u64 },
#[error(
"Committed epoch mismatch: table {table_id}, committed_epoch {committed_epoch}, read_epoch {read_epoch}"
)]
CommittedEpochMismatch {
table_id: TableId,
committed_epoch: u64,
read_epoch: u64,View on GitHub (pinned to 6469eb736d)