apache/seatunnel · error · SeaTunnelException
Unsupported AlterTableColumnEvent type: {event.getClass().ge
Error message
Unsupported AlterTableColumnEvent type: {event.getClass().getName()} What it means
Private applySchemaChange(connection, tablePath, event) overload dispatches AlterTableColumnEvent subtypes (add/modify/rename/drop column) and throws when the event matches none. The grouped AlterTableColumnsEvent path delegates each column event here, so one unsupported event aborts the batch.
Source
Thrown at seatunnel-connectors-v2/connector-databend/src/main/java/org/apache/seatunnel/connectors/seatunnel/databend/schema/SchemaChangeManager.java:142
addColumnEvent.getColumn().getName(),
tablePath.getFullName(),
event);
return;
}
applyAddColumn(connection, tablePath, addColumnEvent);
} else if (event instanceof AlterTableDropColumnEvent) {
AlterTableDropColumnEvent dropColumnEvent = (AlterTableDropColumnEvent) event;
if (!columnExists(connection, tablePath, dropColumnEvent.getColumn())) {
log.warn(
"Column {} does not exist in table {}. Skipping drop column operation. event: {}",
dropColumnEvent.getColumn(),
tablePath.getFullName(),
event);
return;
}
applyDropColumn(connection, tablePath, dropColumnEvent);
} else {
throw new SeaTunnelException(
"Unsupported AlterTableColumnEvent type: " + event.getClass().getName());
}
}
/**
* Applies each column event in a grouped schema change.
*
* <p>The resolver wraps column-comment changes in {@link AlterTableColumnsEvent}, so the
* per-column dispatcher must handle comment events before structural column events.
*/
void applySchemaChange(Connection connection, TablePath tablePath, AlterTableColumnsEvent event)
throws SQLException, IOException {
for (AlterTableColumnEvent columnEvent : event.getEvents()) {
applySchemaChange(connection, tablePath, columnEvent);
}
}
private void applyRenameColumn(View on GitHub (pinned to cf67b549a7)
Solutions
- Align the seatunnel schema-change API version with the connector version (rebuild with matching versions)
- Filter unsupported column events upstream before applying changes
- Add a handler for the event type if you own the connector code
Defensive patterns
Strategy: try-catch
Try / catch
try {
applySchemaChange(event);
} catch (SeaTunnelException e) {
if (e.getMessage().startsWith("Unsupported AlterTableColumnEvent")) {
log.warn("Skipping unsupported column event: " + e.getMessage());
} else { throw e; }
} Prevention
- Keep schema-change API and connector dependencies at the same version
- Enumerate supported AlterTableColumnEvent subtypes before feeding events in
- Add unit tests covering every column-event subtype
When it happens
Trigger: An AlterTableColumnEvent whose concrete class is not one of the supported add/modify/rename/drop column event types reaches the dispatcher — typically from a newer API version or a custom event.
Common situations: Version mismatch between the schema-change API jar and the Databend connector; a source emitting a newly introduced column-event subtype.
Related errors
- Unsupported schemaChangeEvent: {event.getClass().getName()}
- 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/34400ff0084faa39.
Report an issue: GitHub.