apache/iceberg · warning
Partial commit {} failed for task {}, will retry
Error message
Partial commit {} failed for task {}, will retry What it means
During a partial commit (some tasks committed, retrying the remainder), a RuntimeException was caught. Instead of failing, the coordinator increments partialCommitFailures and logs this warning, because a partial commit will be retried. The exception is deliberately swallowed to allow the retry loop to continue.
Source
Thrown at kafka-connect/kafka-connect/src/main/java/org/apache/iceberg/connect/channel/Coordinator.java:163
commitState.addReady(envelope);
if (commitState.isCommitReady(totalPartitionCount)) {
commit(false);
}
return true;
}
return false;
}
private void commit(boolean partialCommit) {
try {
doCommit(partialCommit);
if (!partialCommit) {
consecutiveCommitFailures = 0;
}
} catch (RuntimeException e) {
if (partialCommit) {
partialCommitFailures.incrementAndGet();
LOG.warn(
"Partial commit {} failed for task {}, will retry",
commitState.currentCommitId(),
taskId,
e);
return;
}
if (!(e instanceof CommitFailedException)) {
// CommitStateUnknownException, ValidationException, ForbiddenException,
// NPE, anything else -- not retryable, terminate immediately
throw e;
}
consecutiveCommitFailures++;
if (consecutiveCommitFailures >= config.commitMaxConsecutiveFailures()) {
LOG.error(
"Commit {} failed for task {} ({} consecutive failures, terminating)",
commitState.currentCommitId(),View on GitHub (pinned to 86d9c8fc54)
Solutions
- Let the retry mechanism run; partial commits retry automatically and no manual intervention is needed for transient errors.
- Check the attached exception 'e' for the root cause (e.g. CommitFailedException vs catalog outage) and fix that underlying issue.
- Reduce concurrent writers to the target tables or increase retry tolerances to lower contention.
- If failures escalate until the commit ultimately fails, investigate the specific table's commit conflicts (branch state, competing jobs).
Defensive patterns
Strategy: retry
Try / catch
try {
coordinator.commit(...);
} catch (RuntimeException e) {
// partial commits retry automatically; inspect 'e' for the root cause
// (CommitFailedException, catalog 5xx, throttling) and fix underlying issue
} Prevention
- Reduce concurrent Iceberg writers on connector target tables.
- Keep catalog endpoints healthy and credentials fresh.
- Watch partialCommitFailures growth to detect persistent contention.
- Schedule table maintenance (compaction, expiry) away from commit windows.
When it happens
Trigger: commitToTable/doCommit throws for a partial commit — e.g. catalog.loadTable or table commit contention (CommitFailedException), transient broker/catalog errors — while other tasks already committed their part.
Common situations: Concurrent Iceberg table commits causing retries; REST catalog 5xx responses; S3/Glue throttling; a table locked by another process during a multi-task commit.
Related errors
- Commit {} failed for task {} ({} consecutive failures, will
- Cannot commit %s due to unexpected exception
- Cannot modify a static table
- Must specify table name(s)
- ${msg}
AI-assisted analysis of apache/iceberg@86d9c8fc54 (2026-09-12).
Data as JSON: /api/errors/27906adce46245b0.
Report an issue: GitHub.