apache/iceberg · warning
Received commit response when no commit in progress, this…
Error message
Received commit response when no commit in progress, this can happen during recovery. Commit ID: {} What it means
A DataWritten (commit response) envelope arrived while the coordinator was not in an in-progress commit, so the response cannot be matched to a current commit ID. The message is kept in the buffer but a warning is logged because this usually indicates a stale or duplicate response, often after coordinator recovery.
Solutions
- Treat as benign if it occurs once during coordinator startup/recovery; the stale response is ignored for commit counting.
- Increase coordinator consumer poll timeouts or reduce commit interval so responses are not orphaned after timeouts.
- Check coordinator topic retention/compaction and consumer group offsets to avoid replaying very old messages.
- If warnings recur continuously, verify all connector tasks are on a compatible Iceberg Connect version.
Defensive patterns
Strategy: retry
Prevention
- Keep coordinator commit intervals long enough for data workers to respond before timeout.
- Avoid replaying old coordinator-topic records (check consumer group offsets after restarts).
- Ensure old coordinator workers are fully terminated after rebalances.
- Treat one-off occurrences during recovery as benign; investigate only when persistent.
When it happens
Trigger: CommitState.addResponse is called with an envelope outside an active commit window — e.g. a delayed Kafka message from a previous coordinator generation, or messages replayed from the coordinator topic during recovery.
Common situations: Coordinator task restarted and consuming old/uncommitted coordinator-topic records; slow data workers whose responses arrive after the coordinator timed out or completed the commit; duplicated topic records after rebalances.
Related errors
- Received commit ready when no commit in progress, this can…
- 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/1fe0e55949ef2a2f.
Report an issue: GitHub.
Appendix: source
Thrown at kafka-connect/kafka-connect/src/main/java/org/apache/iceberg/connect/channel/CommitState.java:55
class CommitState {
private static final Logger LOG = LoggerFactory.getLogger(CommitState.class);
private final List<Envelope> commitBuffer = Lists.newArrayList();
private final List<DataComplete> readyBuffer = Lists.newArrayList();
private int receivedPartitionCount = 0;
private long startTime;
private UUID currentCommitId;
private final IcebergSinkConfig config;
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() {View on GitHub (pinned to 86d9c8fc54)