risingwavelabs/risingwave · error · BatchError

Streaming vnode mapping not found for fragment {0}

Error message

Streaming vnode mapping not found for fragment {0}

What it means

A generic lookup guard: the batch scheduler queried the streaming vnode mapping table for a specific FragmentId and no entry existed. Unlike StreamingVnodeMappingNotInitialized (table empty entirely), this fires when the table exists but the particular fragment's mapping is absent — the fragment was never registered, was dropped/hidden mid-flight (e.g., its streaming job was cancelled or being rescheduled), or the scheduler holds a stale fragment id.

Source

Thrown at src/batch/src/error.rs:140

    // 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]
        opendal::Error,
    ),

    #[error("Failed to execute time travel query")]
    TimeTravel(
        #[source]
        #[backtrace]
        anyhow::Error,
    ),

View on GitHub (pinned to 6469eb736d)

Solutions

  1. Retry the query; if the fragment's streaming job was being created or rescheduled the mapping may appear shortly after
  2. Confirm the streaming job that owns the fragment is running and was not cancelled or dropped
  3. Refresh the fragment/metadata view from the meta service in case the scheduler cached stale fragment ids
  4. If reproducible, check for races between barrier completion (mapping publication) and batch scheduling and report the fragment id
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at src/batch/src/error.rs:140 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/e113a3a31b503f7c. Report an issue: GitHub.