apache/iceberg · error · UnsupportedOperationException

Incremental append scan is not supported

Error message

Incremental append scan is not supported

What it means

Default-method guard on Table: this table implementation does not support incremental append scans, so any call to newIncrementalAppendScan fails. It fires for table implementations (e.g. read-only or wrapped tables) that never wired up IncrementalAppendScan support — the table's data is fine, the capability is missing.

Solutions

  1. Load the table through a catalog/implementation that supports incremental append scans
  2. Fall back to a full newBatchScan and filter by snapshot range manually
  3. Catch UnsupportedOperationException and report that incremental scans are unsupported for this table
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at api/src/main/java/org/apache/iceberg/Table.java:72 when the library encounters an invalid state.

Common situations: See trigger scenarios.


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

Appendix: source

Thrown at api/src/main/java/org/apache/iceberg/Table.java:72

   * Create a new {@link BatchScan batch scan} for this table.
   *
   * <p>Once a batch scan is created, it can be refined to project columns and filter data.
   *
   * @return a batch scan for this table
   */
  default BatchScan newBatchScan() {
    return new BatchScanAdapter(newScan());
  }

  /**
   * Create a new {@link IncrementalAppendScan scan} for this table.
   *
   * <p>Once a scan is created, it can be refined to project columns and filter data.
   *
   * @return an incremental scan for appends only snapshots
   */
  default IncrementalAppendScan newIncrementalAppendScan() {
    throw new UnsupportedOperationException("Incremental append scan is not supported");
  }

  /**
   * Create a new {@link IncrementalChangelogScan} for this table.
   *
   * <p>Once a scan is created, it can be refined to project columns and filter data.
   *
   * @return an incremental changelog scan
   */
  default IncrementalChangelogScan newIncrementalChangelogScan() {
    throw new UnsupportedOperationException("Incremental changelog scan is not supported");
  }

  /**
   * Create a new {@link PartitionStatisticsScan} for this table.
   *
   * <p>Once a partition statistics scan is created, it can be refined to project columns and filter
   * data.

View on GitHub (pinned to 86d9c8fc54)