risingwavelabs/risingwave · error · SinkError

BigQuery error: {0}

Error message

BigQuery error: {0}

What it means

A SinkError variant wrapping an anyhow::Error from the gcp-bigquery-client crate. Raised when BigQuery sink operations fail: authentication, dataset/table resolution, insertAll (streaming insert) errors, or quota/permission rejections.

Source

Thrown at src/connector/src/sink/mod.rs:1196

        anyhow::Error,
    ),
    #[error("Starrocks error: {0}")]
    Starrocks(String),
    #[error("File error: {0}")]
    File(String),
    #[error("Pulsar error: {0}")]
    Pulsar(
        #[source]
        #[backtrace]
        anyhow::Error,
    ),
    #[error(transparent)]
    Internal(
        #[from]
        #[backtrace]
        anyhow::Error,
    ),
    #[error("BigQuery error: {0}")]
    BigQuery(
        #[source]
        #[backtrace]
        anyhow::Error,
    ),
    #[error("DynamoDB error: {0}")]
    DynamoDb(
        #[source]
        #[backtrace]
        anyhow::Error,
    ),
    #[error("SQL Server error: {0}")]
    SqlServer(
        #[source]
        #[backtrace]
        anyhow::Error,
    ),
    #[error("Postgres error: {0}")]

View on GitHub (pinned to 6469eb736d)

Solutions

  1. Verify GCP credentials (service account key path/env) and that they grant BigQuery Data Editor on the target table.
  2. Confirm dataset and table names in the sink options exist and schemas match.
  3. Check the wrapped message for insertAll row errors and fix mismatched columns/types.
  4. Watch for quota/permission errors and request increases or correct IAM bindings.
Defensive patterns

Strategy: try-catch

Validate before calling

bq show --format=prettyjson project:dataset.table # pre-check table existence, schema, and access

Try / catch

match err { SinkError::BigQuery(e) => { log::error!("bigquery: {e:#}"); /* on 429/5xx retry with backoff; on permission/schema errors fix IAM or schema */ } _ => return Err(err) }

Prevention

When it happens

Trigger: Loading GCP credentials fails, the dataset or table does not exist, BigQuery rejects rows via insertAll (invalid schema, missing required fields), or API quota/permission errors occur.

Common situations: Missing/invalid GOOGLE_APPLICATION_CREDENTIALS or service-account key, wrong dataset/table id, schema mismatch with the BigQuery table, exceeded quota or lacking bigquery.tables.updateData permission.

Related errors


AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11). Data as JSON: /api/errors/2c81f94558f15700. Report an issue: GitHub.