risingwavelabs/risingwave · error · BatchError

Task aborted

Error message

Task aborted: {0}

What it means

BatchError::Aborted: a running batch task was cancelled before completion. The string payload records the cancellation reason (e.g. user-issued pg_cancel_backend, statement timeout, or shutdown). It fires when the executor observes its cancel token or receives a stop signal mid-scan/join/aggregate and unwinds with this diagnostic rather than a generic panic.

Solutions

  1. Surface the abort reason to the client as QueryCancelled rather than an internal error
  2. Ensure executors check cancellation tokens periodically so they stop promptly
  3. If aborts stem from timeouts, tune statement_timeout or the query plan to finish faster
Defensive patterns

Strategy: try-catch

When it happens

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

Appendix: source

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

    #[error("Serialize/deserialize error: {0}")]
    Serde(
        #[source]
        #[backtrace]
        BoxedError,
    ),

    #[error("Failed to send result to channel")]
    SenderError,

    #[error(transparent)]
    Internal(
        #[from]
        #[backtrace]
        anyhow::Error,
    ),

    #[error("Task aborted: {0}")]
    Aborted(String),

    #[error(transparent)]
    PbFieldNotFound(#[from] PbFieldNotFound),

    #[error(transparent)]
    RpcError(
        #[from]
        #[backtrace]
        RpcError,
    ),

    #[error("Connector error: {0}")]
    Connector(
        #[source]
        #[backtrace]
        BoxedError,
    ),

View on GitHub (pinned to 6469eb736d)