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

  1. Check filesystem availability and retry once transient outages clear
  2. Verify read permissions on the directories being traversed
  3. 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)