apache/seatunnel · error · SeaTunnelException

Unsupported schemaChangeEvent: {event.getClass().getName()}

Error message

Unsupported schemaChangeEvent: {event.getClass().getName()}

What it means

SchemaChangeManager.applySchemaChange received a SchemaChangeEvent subtype it has no handler for. Only CreateTableEvent, (and per the source) AddColumnEvent/AlterTableColumnEvent/AlterTableColumnsEvent families are dispatched; anything else is rejected with a plain SeaTunnelException. This indicates a schema-change event the Databend connector cannot translate to SQL.

Source

Thrown at seatunnel-connectors-v2/connector-databend/src/main/java/org/apache/seatunnel/connectors/seatunnel/databend/schema/SchemaChangeManager.java:81

    public void applySchemaChange(TablePath tablePath, SchemaChangeEvent event) throws IOException {
        try (Connection connection =
                DriverManager.getConnection(
                        String.format(
                                "%s/%s", databendSinkConfig.getUrl(), tablePath.getDatabaseName()),
                        databendSinkConfig.toProperties())) {
            if (event instanceof AlterTableCommentEvent
                    || event instanceof AlterColumnCommentEvent) {
                // Comment-only changes are not supported by Databend sink, safely ignore
                log.info(
                        "Ignoring comment change event for table {} - Databend sink does not support comment sync: {}",
                        tablePath.getFullName(),
                        event.getClass().getSimpleName());
            } else if (event instanceof AlterTableColumnsEvent) {
                applySchemaChange(connection, tablePath, (AlterTableColumnsEvent) event);
            } else if (event instanceof AlterTableColumnEvent) {
                applySchemaChange(connection, tablePath, (AlterTableColumnEvent) event);
            } else {
                throw new SeaTunnelException(
                        "Unsupported schemaChangeEvent: " + event.getClass().getName());
            }
        } catch (SQLException e) {
            throw new DatabendConnectorException(
                    DatabendConnectorErrorCode.SQL_OPERATION_FAILED,
                    "Failed to apply schema change: " + e.getMessage(),
                    e);
        }
    }

    private void applySchemaChange(
            Connection connection, TablePath tablePath, AlterTableColumnEvent event)
            throws SQLException, IOException {
        if (event instanceof AlterColumnCommentEvent) {
            // Databend does not support comment synchronization, including nested column events.
            log.info(
                    "Ignoring comment change event for table {} - Databend sink does not support comment sync: {}",
                    tablePath.getFullName(),

View on GitHub (pinned to cf67b549a7)

Solutions

  1. Restrict source CDC to column-level schema changes (disable drop/rename table events if configurable)
  2. Handle or filter unsupported events before they reach the Databend sink
  3. Upgrade or patch the connector to support the event type
Defensive patterns

Strategy: try-catch

Validate before calling

if (!(event instanceof CreateTableEvent
        && event instanceof AlterTableColumnsEvent
        && event instanceof AlterTableColumnEvent)) {
    log.warn("Skipping unsupported schema change: " + event.getClass().getName());
    return;
}

Try / catch

try {
    schemaChangeManager.applySchemaChange(event);
} catch (SeaTunnelException e) {
    if (e.getMessage().startsWith("Unsupported schemaChangeEvent")) {
        log.warn("Ignoring unsupported event", e);
    } else { throw e; }
}

Prevention

When it happens

Trigger: CDC/schema-evolution pipelines where the upstream connector emits an event type outside the handled set, e.g. DropTableEvent, RenameTableEvent, TruncateTableEvent, or a newer event type added upstream.

Common situations: Multi-connector CDC jobs where Databend is the sink and the source (e.g. MySQL CDC) emits DDL events beyond add/alter column; upgrading a source connector that introduced new SchemaChangeEvent subclasses.

Related errors


AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10). Data as JSON: /api/errors/8c4d28b8b5301fa5. Report an issue: GitHub.