apache/iceberg · warning
An error occurred reloading table
Error message
An error occurred reloading table {}, table was not reloaded What it means
Same as error 3402 in the Flink 2.3 flavor: CachingTableSupplier.refreshTable() catches an Exception from the periodic catalog table reload, logs this warning, and continues using the cached (stale) Table. Writers keep operating on outdated metadata until a later reload succeeds.
Solutions
- Read the chained exception in the log to identify the catalog load failure and fix it.
- Confirm the table exists and the job should keep running against it.
- Increase the refresh interval to reduce catalog pressure/timeouts.
- Fix credential renewal so long-running jobs can re-authenticate on reload.
Example fix
// before: table dropped mid-job, reload keeps failing catalog.dropTable(identifier); // after: stop the Flink job before dropping catalog.dropTable(identifier); // only after job cancellation
Defensive patterns
Strategy: retry
Try / catch
// alert if reload repeatedly fails; stale metadata may cause commit conflicts
if (reloadFailures(table.name()) > 3) {
alert("table reload failing; sink running on stale metadata");
} Prevention
- Keep catalog endpoints healthy and reachable from the Flink cluster
- Avoid DDL (DROP/RENAME) on tables with live writers
- Tune refresh interval and credential lifetimes
When it happens
Trigger: The table load performed inside refreshTable() throws — catalog unreachable, expired credentials, insufficient permissions, or the table was dropped/renamed while the job was running.
Common situations: Transient REST/metastore outages; IAM credential rotation in long-running streaming jobs; concurrent DROP TABLE; overly aggressive refresh intervals causing throttling.
Related errors
- An error occurred reloading table
- An error occurred reloading table
- An error occurred reloading table
- Could not deserialize the WriteResult object
- Failed to create tableMaintenance
AI-assisted analysis of apache/iceberg@86d9c8fc54 (2026-09-12).
Data as JSON: /api/errors/9fd7fa7c2d590f17.
Report an issue: GitHub.
Appendix: source
Thrown at flink/v2.3/flink/src/main/java/org/apache/iceberg/flink/sink/CachingTableSupplier.java:87
}
void refreshTable() {
if (System.currentTimeMillis() > lastLoadTimeMillis + tableRefreshInterval.toMillis()) {
try {
if (!tableLoader.isOpen()) {
tableLoader.open();
}
this.table = tableLoader.loadTable();
this.lastLoadTimeMillis = System.currentTimeMillis();
LOG.info(
"Table {} reloaded, next min load time threshold is {}",
table.name(),
DateTimeUtil.formatTimestampMillis(
lastLoadTimeMillis + tableRefreshInterval.toMillis()));
} catch (Exception e) {
LOG.warn("An error occurred reloading table {}, table was not reloaded", table.name(), e);
}
}
}
}
View on GitHub (pinned to 86d9c8fc54)