{"record":{"id":"1a7c5460f04f6672","repo":"prestodb/presto","slug":"codec-not-supported-in-parquet","errorCode":null,"errorMessage":"Codec not supported in Parquet: ","messagePattern":"Codec not supported in Parquet: ","errorType":"exception","errorClass":"ParquetCorruptionException","httpStatus":null,"severity":"error","filePath":"presto-parquet/src/main/java/com/facebook/presto/parquet/ParquetCompressionUtils.java","lineNumber":66,"sourceCode":"        if (input.length() == 0) {\n            return EMPTY_SLICE;\n        }\n\n        switch (codec) {\n            case GZIP:\n                return decompressGzip(input, uncompressedSize);\n            case SNAPPY:\n                return decompressSnappy(input, uncompressedSize);\n            case UNCOMPRESSED:\n                return input;\n            case LZO:\n                return decompressLZO(input, uncompressedSize);\n            case LZ4:\n                return decompressLz4(input, uncompressedSize);\n            case ZSTD:\n                return decompressZstd(input, uncompressedSize);\n            default:\n                throw new ParquetCorruptionException(\"Codec not supported in Parquet: \" + codec);\n        }\n    }\n\n    private static Slice decompressSnappy(Slice input, int uncompressedSize)\n    {\n        byte[] buffer = new byte[uncompressedSize];\n        decompress(new SnappyDecompressor(), input, 0, input.length(), buffer, 0);\n        return wrappedBuffer(buffer);\n    }\n\n    private static Slice decompressZstd(Slice input, int uncompressedSize)\n    {\n        byte[] buffer = new byte[uncompressedSize];\n        decompress(new ZstdDecompressor(), input, 0, input.length(), buffer, 0);\n        return wrappedBuffer(buffer);\n    }\n\n    private static Slice decompressGzip(Slice input, int uncompressedSize)","sourceCodeStart":48,"sourceCodeEnd":84,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-parquet/src/main/java/com/facebook/presto/parquet/ParquetCompressionUtils.java#L48-L84","documentation":"ParquetCompressionUtils.decompress dispatches on the Parquet column-chunk codec; codecs outside SNAPPY/GZIP/LZO/LZ4/ZSTD hit the default branch and throw ParquetCorruptionException 'Codec not supported in Parquet'. Either the enum has an unsupported member or the page header was misread.","triggerScenarios":"A Parquet file's column chunk metadata specifies a codec this Presto build cannot decode (e.g., BROTLI or a newer codec like LZ4_RAW on old versions).","commonSituations":"Files written by tools using BROTLI or LZ4_RAW compression; old Presto version lacking newer codec support; corrupted footer metadata yielding a bogus enum.","solutions":["Upgrade Presto to a build supporting the codec (e.g., LZ4_RAW, BROTLI support).","Rewrite/convert the Parquet file with SNAPPY or GZIP compression.","Recompress with a supported codec using parquet-tools/Spark before loading.","Verify file metadata isn't corrupted (re-transfer, validate with parquet-tools meta)."],"exampleFix":"// before: file written with BROTLI\nspark.write.parquet(...).option(\"compression\", \"brotli\")\n// after\nspark.write.parquet(...).option(\"compression\", \"snappy\")","handlingStrategy":"validation","validationCode":"CompressionCodecName codec = footer.getFileMetaData().getCreatedBy() != null ? chunk.getCodec() : null;\nEnumSet<CompressionCodecName> ok = EnumSet.of(SNAPPY, GZIP, LZO, LZ4, ZSTD);\nif (!ok.contains(chunk.getCodec())) throw new IllegalArgumentException(\"unsupported codec: \" + chunk.getCodec());","typeGuard":null,"tryCatchPattern":"try { ParquetCompressionUtils.decompress(codec, input, size); } catch (ParquetCorruptionException e) {\n    throw new DataCorruptionException(\"unsupported parquet codec\", e);\n}","preventionTips":["Standardize producers on SNAPPY/GZIP.","Upgrade Presto to gain newer codec support (LZ4_RAW, BROTLI).","Validate files with parquet-tools meta at ingest.","Avoid writing with experimental codecs into shared lakes."],"tags":["parquet","codec","compression","not-supported"],"backgroundTag":"unsupported-parquet-codec","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"}