apache/seatunnel · error · IOException
Failed during source_listing for protocol=
Error message
Failed during source_listing for protocol=%s, path=%s
What it means
Logged by FileDiscoveryScanner.scan when the directory listing callback itself fails while traversing files under the root path. Distinguishes mid-scan listing failures (after root stat succeeded) from root-level stat failures.
Solutions
- Check filesystem availability and retry once transient outages clear
- Verify read permissions on the directories being traversed
- Exclude inaccessible subdirectories from the scan path or fix their permissions
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/source/reader/FileDiscoveryScanner.java:88 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/aef43119d63aa110.
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/reader/FileDiscoveryScanner.java:88
status -> {
stats.sourceEntries++;
if (stats.sourceEntries % PROGRESS_INTERVAL == 0) {
log.info(
"File source listing progress: phase=source_construction, entries={}, candidates={}",
stats.sourceEntries,
stats.candidates);
}
if (status.isDirectory()) {
if (recursive && !status.getPath().getName().startsWith(".")) {
directories.addLast(status.getPath());
}
return;
}
process(status, filter, candidateConsumer, stats);
});
stats.listedDirectories++;
} catch (IOException e) {
throw new IOException(
"Failed during source_listing for protocol="
+ scheme(directory)
+ ", path="
+ mask(directory),
e);
}
}
}
stats.listingNanos = System.nanoTime() - started - stats.filteringNanos;
return stats;
}
private static void process(
FileStatus status,
FileFilter filter,
FileStatusListingSession.FileStatusConsumer candidateConsumer,
ScanStats stats)
throws IOException {View on GitHub (pinned to cf67b549a7)