apache/seatunnel · error · SeaTunnelException
Unsupported schemaChangeEvent : <eventType>
Error message
Unsupported schemaChangeEvent : <eventType>
What it means
SchemaChangeManager.applySchemaChange only knows how to handle a fixed set of schema change event types (add/change column, etc.) and explicitly ignores comment-only events. Any other AddColumnEvent/AlterTableChangeColumnEvent/AlterTableColumnEvent subtype that falls through the if/else chain is rejected with SeaTunnelException. This prevents silently dropping DDL the sink cannot translate to Doris.
Source
Thrown at seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/schema/SchemaChangeManager.java:146
AlterTableDropColumnEvent dropColumnEvent = (AlterTableDropColumnEvent) event;
if (!columnExists(tablePath, dropColumnEvent.getColumn())) {
log.warn(
"Column {} does not exist in table {}. Skipping drop column operation. event: {}",
dropColumnEvent.getColumn(),
tablePath.getFullName(),
event);
return;
}
applySchemaChange(tablePath, dropColumnEvent);
} else if (event instanceof AlterTableCommentEvent
|| event instanceof AlterColumnCommentEvent) {
// Comment-only changes are not supported by Doris sink, safely ignore
log.info(
"Ignoring comment change event for table {} - Doris sink does not support comment sync: {}",
tablePath.getFullName(),
event.getEventType());
} else {
throw new SeaTunnelException(
"Unsupported schemaChangeEvent : " + event.getEventType());
}
}
}
public void applySchemaChange(TablePath tablePath, AlterTableChangeColumnEvent event)
throws IOException {
StringBuilder sqlBuilder =
new StringBuilder()
.append("ALTER TABLE")
.append(" ")
.append(tablePath.getFullName())
.append(" ")
.append("RENAME COLUMN")
.append(" ")
.append(quoteIdentifier(event.getOldColumn()))
.append(" ")
.append(quoteIdentifier(event.getColumn().getName()));View on GitHub (pinned to cf67b549a7)
Solutions
- Check the event type; filter out unsupported events (e.g. truncate/drop) upstream before they reach the sink
- Restrict the source's schema-change include/exclude configuration to event types the Doris sink supports
- Upgrade SeaTunnel so SchemaChangeManager covers the event type
Example fix
// before
// sink receives all CDC schema events
// after (source config)
schema_change_config {
include = "ADD COLUMN, CHANGE COLUMN"
} Defensive patterns
Strategy: try-catch
Validate before calling
Set<String> supported = Set.of("ADD_COLUMN","CHANGE_COLUMN","ALTER_COLUMN");
if (!supported.contains(event.getEventType().name())) log.warn("skipping " + event); Try / catch
try {
schemaChangeManager.applySchemaChange(tablePath, event);
} catch (SeaTunnelException e) {
if (e.getMessage().startsWith("Unsupported schemaChangeEvent")) {
log.warn("Ignoring unsupported event: {}", e.getMessage());
} else throw e;
} Prevention
- Filter schema-change events at the source to supported types
- Keep source and connector-doris versions aligned
- Test CDC pipelines with all event types your upstream can emit
When it happens
Trigger: CDC pipeline (e.g. MySQL->Doris) where the upstream emits a schema change event type not covered by the manager's if/else chain, such as truncate, drop-table, rename-table or a newly added connector event type.
Common situations: Debezium/CDAS sources sending TRUNCATE or DROP events to Doris; upgrading a source connector that introduces new event types before the Doris sink learns to translate them.
Understand the failure class
Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.
Related errors
- UNSUPPORTED_SCHEMA_CHANGE_TYPE
- Unsupported alter table event:
- Unsupported alter table event:
- DataTypeChanger not reset
- Invalid value for option '" + optionKey + "'. " + e.getMessa
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/788db2646353cdbb.
Report an issue: GitHub.