apache/iceberg · warning
Received commit ready when no commit in progress, this can…
Error message
Received commit ready when no commit in progress, this can happen during recovery. Commit ID: {} What it means
A DataComplete (commit ready) envelope arrived while no commit was in progress, so its partition assignments cannot be counted toward a current commit. Like the commit-response case, this typically reflects stale messages replayed during recovery; the payload is still buffered but the partition count is not incremented.
Solutions
- Benign during recovery — stale DataComplete messages are logged and effectively ignored; no action needed for one-off occurrences.
- Ensure old coordinator workers are fully stopped after rebalances so zombie coordinators stop publishing (check task liveness / fencing).
- Check consumer offsets on the coordinator topic to avoid reprocessing old records after restarts.
- If persistent, align all workers on the same connector version and verify commit timeouts are not shorter than data-worker response latency.
Defensive patterns
Strategy: retry
Prevention
- Confirm a single coordinator generation is active (no zombie coordinators after rebalance).
- Keep data-worker response latency well below the commit timeout.
- Verify consumer offsets on the coordinator topic to avoid replay after restarts.
- Run compatible connector versions across all tasks.
When it happens
Trigger: CommitState.addReady is called outside an active commit, or with a DataComplete whose commitId differs from currentCommitId (the commitId-match branch is skipped).
Common situations: Zombie coordinator from a previous generation still publishing DataComplete messages after a rebalance; recovery replay of coordinator-topic records; data workers responding to a commit that already timed out.
Related errors
- Received commit response when no commit in progress, this…
- Committer found no partitions assigned across all members…
- Error aborting producer transaction
- Coordinator is terminated, commit aborted
- Coordinator unexpectedly terminated on committer
AI-assisted analysis of apache/iceberg@86d9c8fc54 (2026-09-12).
Data as JSON: /api/errors/a9309a2a2984bdb6.
Report an issue: GitHub.
Appendix: source
Thrown at kafka-connect/kafka-connect/src/main/java/org/apache/iceberg/connect/channel/CommitState.java:65
CommitState(IcebergSinkConfig config) {
this.config = config;
}
void addResponse(Envelope envelope) {
commitBuffer.add(envelope);
if (!isCommitInProgress()) {
DataWritten dataWritten = (DataWritten) envelope.event().payload();
LOG.warn(
"Received commit response when no commit in progress, this can happen during recovery. Commit ID: {}",
dataWritten.commitId());
}
}
void addReady(Envelope envelope) {
DataComplete dataComplete = (DataComplete) envelope.event().payload();
readyBuffer.add(dataComplete);
if (!isCommitInProgress()) {
LOG.warn(
"Received commit ready when no commit in progress, this can happen during recovery. Commit ID: {}",
dataComplete.commitId());
} else if (Objects.equals(currentCommitId, dataComplete.commitId())) {
receivedPartitionCount += dataComplete.assignments().size();
}
}
UUID currentCommitId() {
return currentCommitId;
}
boolean isCommitInProgress() {
return currentCommitId != null;
}
boolean isCommitIntervalReached() {
if (startTime == 0) {
startTime = System.currentTimeMillis();View on GitHub (pinned to 86d9c8fc54)