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
- Restrict source CDC to column-level schema changes (disable drop/rename table events if configurable)
- Handle or filter unsupported events before they reach the Databend sink
- 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
- Pin source and sink connector versions so event types match
- Disable unsupported DDL event emission at the CDC source
- Filter SchemaChangeEvents before the Databend sink
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
- Unsupported AlterTableColumnEvent type: {event.getClass().ge
- Unsupported alter table event:
- Unsupported alter table event:
- Unsupported alter table event:
- Unsupported schemaChangeEvent :
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/8c4d28b8b5301fa5.
Report an issue: GitHub.