risingwavelabs/risingwave · error
ALTER TABLE SET SOURCE RATE LIMIT is not supported for…
Error message
ALTER TABLE SET SOURCE RATE LIMIT is not supported for iceberg table: {}.{} What it means
Setting a source rate limit (`ALTER TABLE ... ALTER ... RATE LIMIT` with rate_limit_type = Source) is rejected for Iceberg-backed tables. Rate limiting applies to sources pulling from external systems; Iceberg table sources do not support this tuning knob.
Solutions
- Do not set source rate limits on Iceberg tables; remove the statement from the runbook.
- Control read throughput on the Iceberg/catalog side instead.
- Recreate the table/source with the desired rate limit configured at creation if the connector supports it.
Example fix
// before ALTER TABLE iceberg_t ALTER SOURCE SET RATE LIMIT = 100; // after -- rate limiting unsupported for iceberg tables; omit the statement
Defensive patterns
Strategy: validation
Validate before calling
-- Skip source rate limit changes for iceberg tables SELECT relation_kind FROM rw_catalog.rw_relations WHERE name = 't'; -- only apply rate limits to supported source types
Type guard
fn is_source_rate_limit(op: &AlterTableOperation) -> bool {
matches!(op, AlterTableOperation::AlterRateLimit(r)
if r.rate_limit_type == AlterRateLimitType::Source)
} Try / catch
match client.alter_table_rate_limit(table, limit).await {
Err(e) if e.message().contains("SET SOURCE RATE LIMIT is not supported for iceberg") => {
// control throughput on the Iceberg/catalog side instead
}
other => other?,
} Prevention
- Do not include Iceberg tables in source-rate-limit automation.
- Throttle Iceberg ingestion via external tooling if needed.
- Check relation type before rate-limit ALTERs.
When it happens
Trigger: Executing `ALTER TABLE <iceberg_table> ALTER <col?> SET/RESET SOURCE RATE LIMIT ...` where rate_limit.rate_limit_type == Source on an Iceberg-backed table.
Common situations: Throttling ingestion from a busy source; cost-control runbooks that set source rate limits across all tables.
Related errors
- ALTER TABLE ALTER WATERMARK is not supported for iceberg…
- ALTER TABLE is not supported for iceberg table without auto…
- ALTER TABLE is not supported for iceberg table: . …
- ALTER TABLE REFRESH SCHEMA is not supported for iceberg…
- ALTER TABLE RENAME is not supported for iceberg table
AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11).
Data as JSON: /api/errors/996a3f73146d7a13.
Report an issue: GitHub.
Appendix: source
Thrown at src/frontend/src/handler/mod.rs:1797
}
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,
table_name
);
}
AlterTableOperation::AlterWatermark { .. } => {
bail!(
"ALTER TABLE ALTER WATERMARK is not supported for iceberg table: {}.{}",
schema_name,
table_name
);
}
_ => {}
}
Ok(())
}
View on GitHub (pinned to 6469eb736d)