{"record":{"id":"84ae38afbc5f0094","repo":"apache/seatunnel","slug":"checkpoint-do-not-exist-or-have-already-been-co-84ae38","errorCode":null,"errorMessage":"checkpoint {} do not exist or have already been committed.","messagePattern":"checkpoint (.+?) do not exist or have already been committed\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"seatunnel-connectors-v2/connector-sls/src/main/java/org/apache/seatunnel/connectors/seatunnel/sls/source/SlsSourceReader.java","lineNumber":188,"sourceCode":"        splits.forEach(\n                s -> {\n                    try {\n                        pendingShardsQueue.put(s);\n                    } catch (InterruptedException e) {\n                        throw new RuntimeException(e);\n                    }\n                });\n    }\n\n    @Override\n    public void handleNoMoreSplits() {\n        log.info(\"receive no more splits message, this reader will not add new split.\");\n    }\n\n    @Override\n    public void notifyCheckpointComplete(long checkpointId) throws Exception {\n        if (!checkpointOffsetMap.containsKey(checkpointId)) {\n            log.warn(\"checkpoint {} do not exist or have already been committed.\", checkpointId);\n        } else {\n            checkpointOffsetMap\n                    .remove(checkpointId)\n                    .forEach(\n                            (sharId, slsSourceSplit) -> {\n                                try {\n                                    consumerThreadMap\n                                            .get(sharId)\n                                            .getTasks()\n                                            .put(\n                                                    client -> {\n                                                        // now only default onCheckpointCommit\n                                                        try {\n                                                            client.UpdateCheckPoint(\n                                                                    slsSourceSplit.getProject(),\n                                                                    slsSourceSplit.getLogStore(),\n                                                                    slsSourceSplit.getConsumer(),\n                                                                    slsSourceSplit.getShardId(),","sourceCodeStart":170,"sourceCodeEnd":206,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-sls/src/main/java/org/apache/seatunnel/connectors/seatunnel/sls/source/SlsSourceReader.java#L170-L206","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","solutions":["Treat the warning as informational; offsets are not committed twice","If warnings are persistent, verify checkpointing is enabled and stable (no constantly failing checkpoints)","Ensure the job is not being restarted/restored frequently, which orphans stale checkpoint ids"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// before relying on commit callbacks, check checkpointing config\nif (!env.isCheckpointingEnabled()) {\n    throw new IllegalStateException(\"Checkpointing must be enabled for SLS source offset commits\");\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Enable and stabilize checkpointing with an adequate interval","Avoid frequent job restarts/restores that orphan checkpoint ids","Treat this warning as informational, not an error","Monitor checkpoint failure metrics to catch aborted checkpoints early"],"tags":["checkpoint","sls","streaming"],"backgroundTag":"record-not-found","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}