apache/seatunnel · warning

checkpoint {} do not exist or have already been committed.

Error message

checkpoint {} do not exist or have already been committed.

What it means

SlsSourceReader.notifyCheckpointComplete checks its checkpointOffsetMap for the completed checkpointId; if absent it logs this warning and does nothing. It means a checkpoint-complete notification arrived for a checkpoint that was never recorded, already committed/removed, or discarded on failure/restore. It is benign by design — a guard against double-committing offsets to SLS.

Source

Thrown at seatunnel-connectors-v2/connector-sls/src/main/java/org/apache/seatunnel/connectors/seatunnel/sls/source/SlsSourceReader.java:188

        splits.forEach(
                s -> {
                    try {
                        pendingShardsQueue.put(s);
                    } catch (InterruptedException e) {
                        throw new RuntimeException(e);
                    }
                });
    }

    @Override
    public void handleNoMoreSplits() {
        log.info("receive no more splits message, this reader will not add new split.");
    }

    @Override
    public void notifyCheckpointComplete(long checkpointId) throws Exception {
        if (!checkpointOffsetMap.containsKey(checkpointId)) {
            log.warn("checkpoint {} do not exist or have already been committed.", checkpointId);
        } else {
            checkpointOffsetMap
                    .remove(checkpointId)
                    .forEach(
                            (sharId, slsSourceSplit) -> {
                                try {
                                    consumerThreadMap
                                            .get(sharId)
                                            .getTasks()
                                            .put(
                                                    client -> {
                                                        // now only default onCheckpointCommit
                                                        try {
                                                            client.UpdateCheckPoint(
                                                                    slsSourceSplit.getProject(),
                                                                    slsSourceSplit.getLogStore(),
                                                                    slsSourceSplit.getConsumer(),
                                                                    slsSourceSplit.getShardId(),

View on GitHub (pinned to cf67b549a7)

Solutions

  1. Treat the warning as informational; offsets are not committed twice
  2. If warnings are persistent, verify checkpointing is enabled and stable (no constantly failing checkpoints)
  3. Ensure the job is not being restarted/restored frequently, which orphans stale checkpoint ids
Defensive patterns

Strategy: validation

Validate before calling

// before relying on commit callbacks, check checkpointing config
if (!env.isCheckpointingEnabled()) {
    throw new IllegalStateException("Checkpointing must be enabled for SLS source offset commits");
}

Prevention

When it happens

Trigger: notifyCheckpointComplete(checkpointId) called when checkpointOffsetMap does not contain that id — e.g. duplicate notification, notification after restore, or the checkpoint failed and its entry was removed.

Common situations: Job restored from an older checkpoint state; a checkpoint that was started failed and was aborted; delayed duplicate callbacks from the engine; race between notifyCheckpointComplete and notifyCheckpointAborted.

Understand the failure class

Background: Record Not Found Errors: "not found", RecordNotFound, and "was not found" — what they mean and how to fix them — this error's family across 28 libraries.

Related errors


AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10). Data as JSON: /api/errors/84ae38afbc5f0094. Report an issue: GitHub.