risingwavelabs/risingwave · error · BatchError
Empty workers found
Error message
Empty workers found
What it means
BatchError::EmptyWorkerNodes: the scheduler asked the meta service for the set of worker nodes and received an empty list, so it cannot distribute the distributed batch query plan. It fires when the cluster has no registered compute nodes — e.g. all workers are down, the cluster is still forming, or meta returned an empty snapshot of cluster info.
Solutions
- Check that compute nodes are running and registered with the meta service (rw_worker_num, cluster status)
- If the cluster is restarting, wait for workers to register and retry the query
- Inspect meta node logs for worker registration failures
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at src/batch/src/error.rs:131 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11).
Data as JSON: /api/errors/adc444aa903ea08b.
Report an issue: GitHub.
Appendix: source
Thrown at src/batch/src/error.rs:131
),
#[error("External system error: {0}")]
ExternalSystemError(
#[from]
#[backtrace]
BatchExternalSystemError,
),
// Make the ref-counted type to be a variant for easier code structuring.
// TODO(error-handling): replace with `thiserror_ext::Arc`
#[error(transparent)]
Shared(
#[from]
#[backtrace]
Arc<Self>,
),
#[error("Empty workers found")]
EmptyWorkerNodes,
#[error("Serving vnode mapping not found for fragment {0}")]
ServingVnodeMappingNotFound(FragmentId),
#[error("Streaming vnode mapping has not been initialized")]
StreamingVnodeMappingNotInitialized,
#[error("Streaming vnode mapping not found for fragment {0}")]
StreamingVnodeMappingNotFound(FragmentId),
#[error("Not enough memory to run this query, batch memory limit is {0} bytes")]
OutOfMemory(u64),
#[error("Failed to spill out to disk")]
Spill(
#[from]
#[backtrace]View on GitHub (pinned to 6469eb736d)