apache/iceberg · error · UnsupportedOperationException

Incremental changelog scan is not supported

Error message

Incremental changelog scan is not supported

What it means

Default-method guard on Table: this table implementation does not support incremental changelog scans, so newIncrementalChangelogScan always fails. Like the append-scan guard, it reflects a missing capability of the runtime table class rather than any property of the table data.

Solutions

  1. Use a table implementation that implements newIncrementalChangelogScan
  2. Derive changes manually from snapshot metadata if changelog scans are unavailable
  3. Catch UnsupportedOperationException and surface an explicit unsupported-feature error
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at api/src/main/java/org/apache/iceberg/Table.java:83 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/f8d045f63535d709. Report an issue: GitHub.

Appendix: source

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

   * 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.
   *
   * @return a partition statistics scan for this table
   */
  default PartitionStatisticsScan newPartitionStatisticsScan() {
    throw new UnsupportedOperationException("Partition statistics scan is not supported");
  }

  /**
   * Return the {@link Schema schema} for this table.
   *
   * @return this table's schema

View on GitHub (pinned to 86d9c8fc54)