apache/beam · error · java.lang.UnsupportedOperationException
SideInputTable is a read-only metadata adapter and does not…
Error message
SideInputTable is a read-only metadata adapter and does not support statisticsFiles.
What it means
SideInputTable.statisticsFiles() throws UnsupportedOperationException: table statistics files are not serialized into the side-input adapter, so listing them is unsupported. Statistics-based planning must use a catalog-backed table.
Solutions
- Do not rely on statistics with SideInputTable; reads are planned from the serialized data files/metadata.
- Load the catalog-backed table when statistics are required.
- Skip statistics code paths for SideInputTable instances.
Example fix
// before List<StatisticsFile> stats = sideInputTable.statisticsFiles(); // after List<StatisticsFile> stats = catalog.loadTable(identifier).statisticsFiles();
Defensive patterns
Strategy: type-guard
Type guard
boolean hasStatistics = !(table instanceof SideInputTable);
Try / catch
try {
List<StatisticsFile> stats = table.statisticsFiles();
} catch (UnsupportedOperationException e) {
if (!e.getMessage().contains("statisticsFiles")) throw e;
// proceed without statistics
} Prevention
- Do not plan reads from statistics on side-input tables.
- Consult statistics only at pipeline construction on catalog-backed tables.
- Treat SideInputTable's serialized file list as the sole planning input.
When it happens
Trigger: Calling table.statisticsFiles() on a SideInputTable, e.g. from planner or optimizer code that consults statistics.
Common situations: Query-planning or file-skipping logic reused for side-input tables; generic Table-interface consumers.
Understand the failure class
Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.
Related errors
- SideInputTable is a read-only metadata adapter and does not…
- SideInputTable is a read-only metadata adapter and does not…
- SideInputTable is a read-only metadata adapter and does not…
- SideInputTable is a read-only metadata adapter and does not…
- SideInputTable is a read-only metadata adapter and does not…
AI-assisted analysis of apache/beam@12126d8942 (2026-09-13).
Data as JSON: /api/errors/d380ee19029e839b.
Report an issue: GitHub.
Appendix: source
Thrown at sdks/java/io/iceberg/src/main/java/org/apache/beam/sdk/io/iceberg/SideInputTable.java:213
throw new UnsupportedOperationException(
"SideInputTable is a read-only metadata adapter and does not support snapshots.");
}
@Override
public List<HistoryEntry> history() {
throw new UnsupportedOperationException(
"SideInputTable is a read-only metadata adapter and does not support snapshots.");
}
@Override
public Map<String, SnapshotRef> refs() {
throw new UnsupportedOperationException(
"SideInputTable is a read-only metadata adapter and does not support snapshot refs.");
}
@Override
public List<StatisticsFile> statisticsFiles() {
throw new UnsupportedOperationException(
"SideInputTable is a read-only metadata adapter and does not support statisticsFiles.");
}
@Override
public List<PartitionStatisticsFile> partitionStatisticsFiles() {
throw new UnsupportedOperationException(
"SideInputTable is a read-only metadata adapter and does not support partitionStatisticsFiles.");
}
@Override
public TableScan newScan() {
throw new UnsupportedOperationException(
"SideInputTable is a read-only metadata adapter and does not support scans directly.");
}
@Override
public IncrementalAppendScan newIncrementalAppendScan() {
throw new UnsupportedOperationException(View on GitHub (pinned to 12126d8942)