apache/iceberg · error · UnsupportedOperationException
skip is not supported
Error message
skip is not supported
What it means
Unimplemented skip() in this vectorized Parquet values reader: the column-chunk reading path does not support skipping values (used when projecting out parts of a repetition level run). It fires only when a caller tries to advance the reader without reading — an unsupported operation for this vectorized reader, not a data error.
Source
Thrown at arrow/src/main/java/org/apache/iceberg/arrow/vectorized/parquet/BaseVectorizedParquetValuesReader.java:220
valueIndex += 8;
}
return;
default:
throw new ParquetDecodingException("not a valid mode " + this.mode);
}
} catch (IOException e) {
throw new ParquetDecodingException("Failed to read from input stream", e);
}
}
@Override
public boolean readBoolean() {
return this.readInteger() != 0;
}
@Override
public void skip() {
throw new UnsupportedOperationException();
}
@Override
public int readValueDictionaryId() {
return readInteger();
}
@Override
public int readInteger() {
if (this.currentCount == 0) {
this.readNextGroup();
}
this.currentCount--;
switch (mode) {
case RLE:
return this.currentValue;
case PACKED:View on GitHub (pinned to 86d9c8fc54)
Solutions
- Read the batch and discard the values instead of calling skip().
- Use the non-vectorized Parquet values reader, which supports skip.
- File/await an Iceberg issue adding skip support to the vectorized reader.
Example fix
// before reader.skip(); // after reader.readInteger(); // read and discard
Defensive patterns
Strategy: fallback
Try / catch
// catch (UnsupportedOperationException e) {
// if ("skip is not supported".equals(e.getMessage())) { readAndDiscard(); }
// else throw e;
// } Prevention
- Never call skip() on vectorized readers; read batches and discard.
- Use the non-vectorized reader when skip semantics are needed.
- Check reader capabilities before invoking skip.
When it happens
Trigger: Calling skip() on a BaseVectorizedParquetValuesReader instance, e.g. from a record reader that tries to skip over values instead of materializing them.
Common situations: Custom or engine integrations reusing the vectorized reader with column pruning/predicate paths that skip values.
Related errors
- Unsupported variant: shredded typed_value array
- skip is not supported
- skip is not supported
- Non-supported bytesWidth: " + bytesWidth
- not a valid mode " + this.mode
AI-assisted analysis of apache/iceberg@86d9c8fc54 (2026-09-12).
Data as JSON: /api/errors/4dd5e008257339e1.
Report an issue: GitHub.