apache/flink · error · ParquetDecodingException
Could not read page in col .
Error message
Could not read page %s in col %s.
What it means
Wraps an exception while initializing repetition/definition level readers or consuming a DataPageV1's byte payload for a nested column; the chained cause (usually a decoding or buffer error) explains why the page could not be prepared for reading.
Solutions
- Address the cause reported by the error message: Could not read page the reported value in col the reported value.
- Verify the inputs, configuration values, and classpath/dependency setup related to this operation, then retry.
Example fix
Correct the condition described ("Could not read page the reported value in col the reported value.") and rerun the job or command. Defensive patterns
Strategy: try-catch
When it happens
Trigger: Triggered at runtime when the operation fails because: Could not read page the reported value in col the reported value.
Common situations: Commonly caused by misconfiguration, missing dependencies or files, unsupported types or operations, or invalid user input leading to: Could not read page the reported value in col the reported value.
AI-assisted analysis of apache/flink@2f3c205e92 (2026-08-14).
Data as JSON: /api/errors/6cf116153e08b6fa.
Report an issue: GitHub.
Appendix: source
Thrown at flink-formats/flink-parquet/src/main/java/org/apache/flink/formats/parquet/vector/reader/NestedPrimitiveColumnReader.java:543
}
private void readPageV1(DataPageV1 page) {
ValuesReader rlReader = page.getRlEncoding().getValuesReader(descriptor, REPETITION_LEVEL);
ValuesReader dlReader = page.getDlEncoding().getValuesReader(descriptor, DEFINITION_LEVEL);
this.repetitionLevelColumn = new ValuesReaderIntIterator(rlReader);
this.definitionLevelColumn = new ValuesReaderIntIterator(dlReader);
try {
BytesInput bytes = page.getBytes();
LOG.debug("Page size {} bytes and {} records.", bytes.size(), pageValueCount);
ByteBufferInputStream in = bytes.toInputStream();
LOG.debug("Reading repetition levels at {}.", in.position());
rlReader.initFromPage(pageValueCount, in);
LOG.debug("Reading definition levels at {}.", in.position());
dlReader.initFromPage(pageValueCount, in);
LOG.debug("Reading data at {}.", in.position());
initDataReader(page.getValueEncoding(), in, page.getValueCount());
} catch (IOException e) {
throw new ParquetDecodingException(
String.format("Could not read page %s in col %s.", page, descriptor), e);
}
}
private void readPageV2(DataPageV2 page) {
this.pageValueCount = page.getValueCount();
this.repetitionLevelColumn =
newRLEIterator(descriptor.getMaxRepetitionLevel(), page.getRepetitionLevels());
this.definitionLevelColumn =
newRLEIterator(descriptor.getMaxDefinitionLevel(), page.getDefinitionLevels());
try {
LOG.debug(
"Page data size {} bytes and {} records.",
page.getData().size(),
pageValueCount);
initDataReader(
page.getDataEncoding(), page.getData().toInputStream(), page.getValueCount());
} catch (IOException e) {View on GitHub (pinned to 2f3c205e92)