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

  1. Read the batch and discard the values instead of calling skip().
  2. Use the non-vectorized Parquet values reader, which supports skip.
  3. 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

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


AI-assisted analysis of apache/iceberg@86d9c8fc54 (2026-09-12). Data as JSON: /api/errors/4dd5e008257339e1. Report an issue: GitHub.