risingwavelabs/risingwave · error

additional column is not supported for connector {}, accepta

Error message

additional column is not supported for connector {}, acceptable connectors: {:?}

What it means

When creating a source/table with additional columns (e.g. #partition, #offset, message headers), build_additional_column_desc looks up the connector in COMPATIBLE_ADDITIONAL_COLUMNS. If the connector supports no additional columns at all and it is a CDC backfill table (None, true branch), creation fails naming the connector and the acceptable connectors list.

Source

Thrown at src/connector/src/parser/additional_columns.rs:163

pub fn build_additional_column_desc(
    column_id: ColumnId,
    connector_name: &str,
    additional_col_type: &str,
    column_alias: Option<String>,
    inner_field_name: Option<&str>,
    data_type: Option<&DataType>,
    reject_unknown_connector: bool,
    is_cdc_backfill_table: bool,
) -> ConnectorResult<ColumnDesc> {
    let compatible_columns = match (
        get_supported_additional_columns(connector_name, is_cdc_backfill_table),
        reject_unknown_connector,
    ) {
        (Some(compat_cols), _) => compat_cols,
        (None, false) => &COMMON_COMPATIBLE_ADDITIONAL_COLUMNS,
        (None, true) => {
            bail!(
                "additional column is not supported for connector {}, acceptable connectors: {:?}",
                connector_name,
                COMPATIBLE_ADDITIONAL_COLUMNS.keys(),
            );
        }
    };
    if !compatible_columns.contains(additional_col_type) {
        bail!(
            "additional column type {} is not supported for connector {}, acceptable column types: {:?}",
            additional_col_type,
            connector_name,
            compatible_columns
        );
    }

    let column_name = column_alias.unwrap_or_else(|| {
        gen_default_addition_col_name(
            connector_name,

View on GitHub (pinned to 6469eb736d)

Solutions

  1. Use a supported connector (check the acceptable connectors list in the message)
  2. Remove the additional column from the table definition
  3. Upgrade RisingWave — connector support for additional columns grows over time

Example fix

// before
CREATE TABLE t (...) WITH (connector='my_connector', include offset AS #offset);
// after
CREATE TABLE t (...) WITH (connector='kafka', include offset AS #offset);
Defensive patterns

Strategy: validation

Validate before calling

const SUPPORTED = ['kafka','pulsar','kinesis','nats','mqtt','google_pubsub'];
function canAddColumns(connector) {
  if (!SUPPORTED.includes(connector)) throw new Error(`additional column unsupported for ${connector}`);
}

Try / catch

try {
  await rw.query(ddl);
} catch (e) {
  if (/additional column is not supported for connector/.test(e.message)) {
    // drop INCLUDE clauses or switch connector and retry
  } else throw e;
}

Prevention

When it happens

Trigger: CREATE TABLE ... WITH (connector='<name>', ...) requesting an additional column (or using CDC backfill which implicitly adds offset columns) for a connector not present in COMPATIBLE_ADDITIONAL_COLUMNS.

Common situations: Using additional columns like #key or #timestamp with a connector that doesn't support them (e.g. some CDC or custom connectors); typo in the connector name; using a CDC backfill table with an incompatible connector.

Related errors


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