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

  1. Check that compute nodes are running and registered with the meta service (rw_worker_num, cluster status)
  2. If the cluster is restarting, wait for workers to register and retry the query
  3. 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)