apache/seatunnel · error
Cannot qualify path for safety check, using raw path…
Error message
Cannot qualify path for safety check, using raw path validation: {} What it means
Logged when the configured post-sync path cannot be fully qualified (filesystem makeQualified failure) before the root-path safety check; validation falls back to raw-path checks to still reject filesystem-root targets and avoid mass deletion.
Solutions
- Fix the configured path (valid scheme/authority) so qualification succeeds
- Use an absolute, non-root directory for post_sync_action targets
- Verify filesystem configuration matches the path scheme
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:1592 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/f9e38f9b93d6fd5a.
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:1592
String pathComponent = new Path(qualified).toUri().getPath();
if ("/".equals(pathComponent) || pathComponent.isEmpty()) {
throw new FileConnectorException(
SeaTunnelAPIErrorCode.CONFIG_VALIDATION_FAILED,
"post_sync_action=delete|backup requires path to be a non-root directory. "
+ "Refusing to operate on filesystem root to prevent mass deletion.");
}
} catch (FileConnectorException e) {
throw e;
} catch (Exception e) {
// Best-effort: if filesystem not initialized, check raw path
String pathPart = new Path(path).toUri().getPath();
if (pathPart == null || "/".equals(pathPart) || pathPart.isEmpty()) {
throw new FileConnectorException(
SeaTunnelAPIErrorCode.CONFIG_VALIDATION_FAILED,
"post_sync_action=delete|backup requires path to be a non-root directory. "
+ "Refusing to operate on filesystem root to prevent mass deletion.");
}
log.warn(
"Cannot qualify path for safety check, using raw path validation: {}", path, e);
}
}
private static String resolveFsIdentity(String path, String defaultFsIdentity) {
if (StringUtils.isBlank(path)) {
return defaultFsIdentity;
}
try {
java.net.URI uri = new Path(path).toUri();
if (StringUtils.isBlank(uri.getScheme())) {
return defaultFsIdentity;
}
return normalizeFsIdentity(uri);
} catch (Exception e) {
return defaultFsIdentity;
}
}View on GitHub (pinned to cf67b549a7)