risingwavelabs/risingwave · error

ALTER TABLE SET BACKFILL PARALLELISM is not supported for ic

Error message

ALTER TABLE SET BACKFILL PARALLELISM is not supported for iceberg table: {}.{}

What it means

Changing backfill parallelism (`ALTER TABLE ... SET BACKFILL PARALLELISM`) is rejected for Iceberg-backed tables. This tuning knob is not available for the streaming jobs associated with Iceberg sinks.

Source

Thrown at src/frontend/src/handler/mod.rs:1781

                table_name
            );
        }
        AlterTableOperation::RenameTable { .. } => {
            bail!(
                "ALTER TABLE RENAME is not supported for iceberg table: {}.{}",
                schema_name,
                table_name
            );
        }
        AlterTableOperation::SetParallelism { .. } => {
            bail!(
                "ALTER TABLE SET PARALLELISM is not supported for iceberg table: {}.{}",
                schema_name,
                table_name
            );
        }
        AlterTableOperation::SetBackfillParallelism { .. } => {
            bail!(
                "ALTER TABLE SET BACKFILL PARALLELISM is not supported for iceberg table: {}.{}",
                schema_name,
                table_name
            );
        }
        AlterTableOperation::RefreshSchema => {
            bail!(
                "ALTER TABLE REFRESH SCHEMA is not supported for iceberg table: {}.{}",
                schema_name,
                table_name
            );
        }
        AlterTableOperation::AlterRateLimit(rate_limit)
            if rate_limit.rate_limit_type == AlterRateLimitType::Source =>
        {
            bail!(
                "ALTER TABLE SET SOURCE RATE LIMIT is not supported for iceberg table: {}.{}",
                schema_name,

View on GitHub (pinned to 6469eb736d)

Solutions

  1. Recreate the table and Iceberg sink specifying backfill parallelism in the creation DDL.
  2. Accept default backfill parallelism for the Iceberg table.
  3. Exclude Iceberg tables from backfill-parallelism automation.

Example fix

// before
ALTER TABLE iceberg_t SET BACKFILL PARALLELISM = 4;
// after
-- recreate table/sink with backfill_parallelism set at creation
Defensive patterns

Strategy: validation

Validate before calling

-- Skip SET BACKFILL PARALLELISM for iceberg-backed tables
SELECT relation_kind FROM rw_catalog.rw_relations WHERE name = 't';
-- only issue for non-iceberg tables

Type guard

fn is_backfill_parallelism_change(op: &AlterTableOperation) -> bool {
    matches!(op, AlterTableOperation::SetBackfillParallelism {..})
}

Try / catch

match client.alter_table_set_backfill_parallelism(table, p).await {
    Err(e) if e.message().contains("SET BACKFILL PARALLELISM is not supported") => {
        // accept defaults or recreate with backfill_parallelism at creation
    }
    other => other?,
}

Prevention

When it happens

Trigger: Executing `ALTER TABLE <iceberg_table> SET BACKFILL PARALLELISM ...` on a table backed by an Iceberg sink.

Common situations: Speeding up or throttling an ongoing backfill; operational runbooks that adjust backfill parallelism across all tables.

Related errors


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