{"record":{"id":"ebc7432fade5d05f","repo":"apache/seatunnel","slug":"unsupported-alter-table-event-ebc743","errorCode":null,"errorMessage":"Unsupported alter table event: ","messagePattern":"Unsupported alter table event: ","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/sink/ElasticsearchSinkWriter.java","lineNumber":196,"sourceCode":"        String indexRequestRow = seaTunnelRowSerializer.serializeRow(element);\n        requestEsList.add(indexRequestRow);\n        if (requestEsList.size() >= maxBatchSize) {\n            bulkEsWithRetry(this.esRestClient, this.requestEsList);\n        }\n    }\n\n    @Override\n    public void applySchemaChange(SchemaChangeEvent event) throws IOException {\n        if (isCommentOnlyEvent(event)) {\n            log.debug(\"Ignore comment-only schema change event: {}\", event);\n        } else if (event instanceof AlterTableColumnsEvent) {\n            for (AlterTableColumnEvent columnEvent : ((AlterTableColumnsEvent) event).getEvents()) {\n                applySingleSchemaChangeEvent(columnEvent);\n            }\n        } else if (event instanceof AlterTableColumnEvent) {\n            applySingleSchemaChangeEvent(event);\n        } else {\n            throw new UnsupportedOperationException(\"Unsupported alter table event: \" + event);\n        }\n\n        this.tableSchema = tableSchemaChangeEventHandler.reset(tableSchema).apply(event);\n\n        initializeSerializer(tableSchema.toPhysicalRowDataType());\n    }\n\n    static boolean isCommentOnlyEvent(SchemaChangeEvent event) {\n        return event instanceof AlterTableCommentEvent || event instanceof AlterColumnCommentEvent;\n    }\n\n    private void applySingleSchemaChangeEvent(SchemaChangeEvent event) {\n        if (isCommentOnlyEvent(event)) {\n            log.debug(\"Ignore comment-only schema change event: {}\", event);\n        } else if (event instanceof AlterTableAddColumnEvent) {\n            AlterTableAddColumnEvent addColumnEvent = (AlterTableAddColumnEvent) event;\n            Column column = addColumnEvent.getColumn();\n            BasicTypeDefine<EsType> reconvert =","sourceCodeStart":178,"sourceCodeEnd":214,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/sink/ElasticsearchSinkWriter.java#L178-L214","documentation":"applySchemaChange handles schema-change events by dispatching AlterTableColumnsEvent and AlterTableColumnEvent; any other event kind is unsupported and throws UnsupportedOperationException('Unsupported alter table event: ' + event).","triggerScenarios":"The schema-change provider delivers an AlterTableEvent type other than column add/columns change (e.g. rename table, drop table, truncate) to the ES sink's applySchemaChange.","commonSituations":"CDC pipelines (MySQL/Postgres -> ES) where upstream DDL includes operations the ES connector does not support, such as table renames or drops.","solutions":["Restrict upstream DDL to ADD COLUMN operations, or filter unsupported events before the sink","Handle the event manually by applying equivalent changes to the ES index","Check connector docs/versions for broader schema-change support"],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":"if (!(event instanceof AlterTableColumnsEvent) && !(event instanceof AlterTableColumnEvent)) {\n    log.warn(\"Skipping unsupported schema event: \" + event.getClass().getSimpleName());\n    return;\n}","typeGuard":"boolean isSupportedSchemaEvent(AlterTableEvent e) {\n    return e instanceof AlterTableColumnsEvent || e instanceof AlterTableColumnEvent;\n}","tryCatchPattern":null,"preventionTips":["Avoid rename/drop/truncate DDL on tables synced to ES","Filter schema-change events upstream to supported types","Review CDC pipeline DDL policy before enabling schema evolution"],"tags":["elasticsearch","schema-change","cdc","unsupported-event"],"backgroundTag":"unsupported-enum-value","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"}