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

  1. Let the retry mechanism run; partial commits retry automatically and no manual intervention is needed for transient errors.
  2. Check the attached exception 'e' for the root cause (e.g. CommitFailedException vs catalog outage) and fix that underlying issue.
  3. Reduce concurrent writers to the target tables or increase retry tolerances to lower contention.
  4. 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

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


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