apache/seatunnel · error

Skip post-sync staging because split version cannot be…

Error message

Skip post-sync staging because split version cannot be resolved: splitId={}, source={}

What it means

Logged when post-sync staging cannot proceed because the split's version cannot be parsed from the split id/file name (malformed legacy naming), so the sync skips post-sync actions for that split rather than failing — recorded with the splitId and source for diagnosis.

Solutions

  1. Inspect the splitId/file naming that failed version resolution
  2. Migrate legacy-named files or splits to the current naming scheme
  3. Check logs for prior rename failures that produced unparseable names
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/source/split/ContinuousMultipleTableFileSourceSplitEnumerator.java:1293 when the library encounters an invalid state.

Common situations: See trigger scenarios.


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

Appendix: source

Thrown at seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/source/split/ContinuousMultipleTableFileSourceSplitEnumerator.java:1293

                return Long.parseLong(matcher.group(3));
            } catch (NumberFormatException ignored) {
                // Fall through to filesystem mtime for malformed legacy file names.
            }
        }
        return status.getModificationTime();
    }

    private FileSourceOperationState buildOperationStateFromFinishedSplit(
            TableScanContext tableScanContext,
            InFlightSplitContext inFlightSplitContext,
            String sourceContentFingerprint) {
        FileSourceSplit split = inFlightSplitContext.split;
        SplitVersion splitVersion = inFlightSplitContext.splitVersion;
        if (splitVersion == null) {
            splitVersion = resolveSplitVersion(tableScanContext, split);
        }
        if (splitVersion == null) {
            log.warn(
                    "Skip post-sync staging because split version cannot be resolved: splitId={}, source={}",
                    split.splitId(),
                    maskUriUserInfo(split.getFilePath()));
            return null;
        }

        String backupTargetPath = null;
        if (tableScanContext.postSyncAction == FilePostSyncAction.BACKUP) {
            String relativePath =
                    resolveRelativePath(tableScanContext.rootPath, split.getFilePath());
            long backupCreatedTimeMillis = System.currentTimeMillis();
            String versionedRelativePath =
                    relativePath
                            + ".v"
                            + splitVersion.length
                            + "_"
                            + splitVersion.modificationTime
                            + "_"

View on GitHub (pinned to cf67b549a7)