prestodb/presto · error · RuntimeException

Could not decompress page

Error message

Could not decompress page

What it means

Wraps an IOException from the page decompression step in readPage: the codec (gzip/snappy/zstd/lz4) failed while inflating a Parquet data page — usually a truncated or corrupt page, or a damaged compression payload.

Source

Thrown at presto-parquet/src/main/java/com/facebook/presto/parquet/reader/PageReader.java:136

                        - dataPageV2.getDefinitionLevels().length()
                        - dataPageV2.getRepetitionLevels().length());
                slice = decompress(codec, slice, uncompressedSize);
                return new DataPageV2(
                        dataPageV2.getRowCount(),
                        dataPageV2.getNullCount(),
                        dataPageV2.getValueCount(),
                        firstRowIndex,
                        dataPageV2.getRepetitionLevels(),
                        dataPageV2.getDefinitionLevels(),
                        dataPageV2.getDataEncoding(),
                        slice,
                        dataPageV2.getUncompressedSize(),
                        dataPageV2.getStatistics(),
                        false);
            }
        }
        catch (IOException e) {
            throw new RuntimeException("Could not decompress page", e);
        }
    }

    public DictionaryPage readDictionaryPage()
    {
        if (compressedDictionaryPage == null) {
            return null;
        }
        try {
            Slice slice = decryptSliceIfNeeded(compressedDictionaryPage.getSlice(), dictionaryPageAdditionalAuthenticationData);
            return new DictionaryPage(
                    decompress(codec, slice, compressedDictionaryPage.getUncompressedSize()),
                    compressedDictionaryPage.getDictionarySize(),
                    compressedDictionaryPage.getEncoding());
        }
        catch (IOException e) {
            throw new RuntimeException("Error reading dictionary page", e);
        }

View on GitHub (pinned to 55bb57d202)

Solutions

  1. Restore or rewrite the corrupt Parquet file
  2. Validate object checksums / re-transfer the file
  3. Confirm the codec used by the writer is supported and not misconfigured
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at presto-parquet/src/main/java/com/facebook/presto/parquet/reader/PageReader.java:136 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of prestodb/presto@55bb57d202 (2026-09-04). Data as JSON: /api/errors/4b67a1f20308f25f. Report an issue: GitHub.