{"record":{"id":"9266c3e09d87cf35","repo":"prestodb/presto","slug":"not-supported-9266c3","errorCode":"NOT_SUPPORTED","errorMessage":"Unsupported Changelog Operation: ","messagePattern":"Unsupported Changelog Operation: ","errorType":"error_code","errorClass":"PrestoException","httpStatus":null,"severity":"error","filePath":"presto-iceberg/src/main/java/com/facebook/presto/iceberg/changelog/ChangelogOperation.java","lineNumber":48,"sourceCode":"\n    public static ChangelogOperation fromIcebergChangelogOperation(org.apache.iceberg.ChangelogOperation operation)\n    {\n        ChangelogOperation prestoOperation;\n        switch (operation) {\n            case INSERT:\n                prestoOperation = INSERT;\n                break;\n            case DELETE:\n                prestoOperation = DELETE;\n                break;\n            case UPDATE_BEFORE:\n                prestoOperation = UPDATE_BEFORE;\n                break;\n            case UPDATE_AFTER:\n                prestoOperation = UPDATE_AFTER;\n                break;\n            default:\n                throw new PrestoException(NOT_SUPPORTED, \"Unsupported Changelog Operation: \" + operation);\n        }\n\n        return prestoOperation;\n    }\n}\n","sourceCodeStart":30,"sourceCodeEnd":54,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-iceberg/src/main/java/com/facebook/presto/iceberg/changelog/ChangelogOperation.java#L30-L54","documentation":"ChangelogOperation.fromIcebergChangelogOperation maps Iceberg UpdateRequirements/row-level change operations onto Presto changelog operations. An operation enum value not covered by the switch (e.g. added in a newer Iceberg version) throws NOT_SUPPORTED with the offending operation appended.","triggerScenarios":"Processing an Iceberg changelog scan whose operation enum value is not one of INSERT/DELETE/UPDATE_BEFORE/UPDATE_AFTER — typically a new Iceberg operation type this connector build doesn't know.","commonSituations":"Iceberg v2 tables producing operations from newer Iceberg library versions consumed by an older Presto build; custom operations injected by other engines.","solutions":["Upgrade the Presto Iceberg connector to match the Iceberg library version in use.","Check changelogSplitInfo.getOperation() values on the table and avoid operations that emit the unsupported kind.","Catch NOT_SUPPORTED and map the unknown operation manually if you control the pipeline."],"exampleFix":"// before\nthrow new PrestoException(NOT_SUPPORTED, \"Unsupported Changelog Operation: \" + operation);\n// after (upgrade or extend)\ncase OTHER_OP: return PrestoChangelogOperation.INSERT; // add mapping for the new operation","handlingStrategy":"try-catch","validationCode":null,"typeGuard":"boolean isKnownOperation(Operation op) {\n    switch (op) { case INSERT: case DELETE: case UPDATE_BEFORE: case UPDATE_AFTER: return true; default: return false; }\n}","tryCatchPattern":"try { rows = changelogTableSource.read(); } catch (PrestoException e) { if (e.getMessage().startsWith(\"Unsupported Changelog Operation\")) { /* upgrade connector or map op */ } throw e; }","preventionTips":["Pin Iceberg library version compatible with the connector","Test changelog reads after any Iceberg upgrade","Check operation values on the table before enabling changelog queries"],"tags":["iceberg","changelog","not-supported","enum"],"backgroundTag":"unsupported-enum-value","analyzedSha":"55bb57d202de3b926896fa966c2c4a44c779634e","analyzedAt":"2026-09-04T12:50:26.162Z","contentChangedAt":"2026-09-04T12:50:26.162Z","schemaVersion":2},"datasetVersion":"2026-09-11T21:17:09.523Z"}