{"record":{"id":"788db2646353cdbb","repo":"apache/seatunnel","slug":"unsupported-schemachangeevent-eventtype","errorCode":null,"errorMessage":"Unsupported schemaChangeEvent : <eventType>","messagePattern":"Unsupported schemaChangeEvent : <eventType>","errorType":"exception","errorClass":"SeaTunnelException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/schema/SchemaChangeManager.java","lineNumber":146,"sourceCode":"                AlterTableDropColumnEvent dropColumnEvent = (AlterTableDropColumnEvent) event;\n                if (!columnExists(tablePath, dropColumnEvent.getColumn())) {\n                    log.warn(\n                            \"Column {} does not exist in table {}. Skipping drop column operation. event: {}\",\n                            dropColumnEvent.getColumn(),\n                            tablePath.getFullName(),\n                            event);\n                    return;\n                }\n                applySchemaChange(tablePath, dropColumnEvent);\n            } else if (event instanceof AlterTableCommentEvent\n                    || event instanceof AlterColumnCommentEvent) {\n                // Comment-only changes are not supported by Doris sink, safely ignore\n                log.info(\n                        \"Ignoring comment change event for table {} - Doris sink does not support comment sync: {}\",\n                        tablePath.getFullName(),\n                        event.getEventType());\n            } else {\n                throw new SeaTunnelException(\n                        \"Unsupported schemaChangeEvent : \" + event.getEventType());\n            }\n        }\n    }\n\n    public void applySchemaChange(TablePath tablePath, AlterTableChangeColumnEvent event)\n            throws IOException {\n        StringBuilder sqlBuilder =\n                new StringBuilder()\n                        .append(\"ALTER TABLE\")\n                        .append(\" \")\n                        .append(tablePath.getFullName())\n                        .append(\" \")\n                        .append(\"RENAME COLUMN\")\n                        .append(\" \")\n                        .append(quoteIdentifier(event.getOldColumn()))\n                        .append(\" \")\n                        .append(quoteIdentifier(event.getColumn().getName()));","sourceCodeStart":128,"sourceCodeEnd":164,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/schema/SchemaChangeManager.java#L128-L164","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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"],"exampleFix":"// before\n// sink receives all CDC schema events\n// after (source config)\nschema_change_config {\n  include = \"ADD COLUMN, CHANGE COLUMN\"\n}","handlingStrategy":"try-catch","validationCode":"Set<String> supported = Set.of(\"ADD_COLUMN\",\"CHANGE_COLUMN\",\"ALTER_COLUMN\");\nif (!supported.contains(event.getEventType().name())) log.warn(\"skipping \" + event);","typeGuard":null,"tryCatchPattern":"try {\n    schemaChangeManager.applySchemaChange(tablePath, event);\n} catch (SeaTunnelException e) {\n    if (e.getMessage().startsWith(\"Unsupported schemaChangeEvent\")) {\n        log.warn(\"Ignoring unsupported event: {}\", e.getMessage());\n    } else throw e;\n}","preventionTips":["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"],"tags":["schema-change","cdc","unsupported-operation","doris"],"backgroundTag":"unsupported-operation","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}