risingwavelabs/risingwave · warning · HummockError
Next epoch error: {0}
Error message
Next epoch error: {0} What it means
A request to advance to or fetch Hummock's next epoch failed, with the reason in the String payload. This is thrown when the epoch-advance/next-epoch path (used by writers and barriers) cannot produce the next epoch. The string carries the underlying reason.
Source
Thrown at src/storage/src/hummock/error.rs:49
#[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,
},
#[error("Barrier read is unavailable for now. Likely the cluster is recovering")]
ReadCurrentEpoch,
#[error("CompactionExecutor error: {0}")]
CompactionExecutor(String),
#[error("FileCache error: {0}")]View on GitHub (pinned to 6469eb736d)
Solutions
- Retry the operation after confirming the meta node is healthy.
- Check meta node logs for barrier/epoch-advance failures and network issues.
- Restart the affected node/cluster to rebuild epoch state after an abnormal shutdown.
- Report with the wrapped message if epoch advancement repeatedly fails.
Defensive patterns
Strategy: retry
Try / catch
// Rust
match hummock_advance_epoch(...) {
Err(e) if e.to_string().starts_with("Next epoch error") => {
// retry after meta health check; escalate if persistent
}
r => r?,
} Prevention
- Ensure meta node availability and replica count.
- Use clean shutdowns; investigate crash recovery logs.
- Monitor barrier delivery latency across the cluster.
When it happens
Trigger: Writer/barrier paths calling Hummock's next-epoch or epoch-advance APIs when the underlying meta/state operation fails.
Common situations: Meta node unavailability or barrier delivery failure; epoch state corruption after crash; network partition preventing epoch propagation.
Understand the failure class
Background: "Invalid state transition" errors: "status must be X, actually Y", "already rejected/charging/uninstalled", "cannot ... while running" — what they mean when a library rejects your call — this error's family across 31 libraries.
Related errors
- Wait epoch error: {0}
- Change log retention miss: table {table_id}, epoch {epoch}
- Time-travel version expired: table {table_id}, epoch {epoch}
- Committed epoch mismatch: table {table_id}, committed_epoch
- Storage error: {0}
AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11).
Data as JSON: /api/errors/10c63bd51dc59317.
Report an issue: GitHub.