prestodb/presto · error · ParquetDecodingException
Error reading parquet page in column
Error message
Error reading parquet page in column
What it means
Wraps an IOException from ValuesReader.initFromPage while preparing a page's values reader in initDataReader: the page payload could not be initialized (truncated page, bad levels, unsupported layout). The catch converts it into a ParquetDecodingException naming the column.
Source
Thrown at presto-parquet/src/main/java/com/facebook/presto/parquet/reader/AbstractColumnReader.java:357
}
valuesReader = dataEncoding.getDictionaryBasedValuesReader(columnDescriptor, VALUES, dictionary);
}
else {
valuesReader = dataEncoding.getValuesReader(columnDescriptor, VALUES);
}
try {
valuesReader.initFromPage(valueCount, inputStream);
if (firstRowIndex != -1) {
currentRow = firstRowIndex - 1;
}
else {
currentRow = -1;
}
return valuesReader;
}
catch (IOException e) {
throw new ParquetDecodingException("Error reading parquet page in column " + columnDescriptor, e);
}
}
private boolean skipRL(int repetitionLevel, boolean indexEnabled)
{
if (!indexEnabled || indexIterator == null) {
return false;
}
if (repetitionLevel == 0) {
currentRow = currentRow + 1;
if (currentRow > targetRow) {
targetRow = indexIterator.hasNext() ? indexIterator.nextLong() : Long.MAX_VALUE;
}
}
return currentRow < targetRow;
}View on GitHub (pinned to 55bb57d202)
Solutions
- Verify the Parquet file is complete and uncorrupted in storage
- Reproduce with the parquet-tools/verified reader to confirm page validity
- Upgrade Presto if the page layout is valid but unsupported
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at presto-parquet/src/main/java/com/facebook/presto/parquet/reader/AbstractColumnReader.java:357 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/4fbfb396e44f0129.
Report an issue: GitHub.