{"record":{"id":"aef43119d63aa110","repo":"apache/seatunnel","slug":"failed-during-source-listing-for-protocol-s-path","errorCode":null,"errorMessage":"Failed during source_listing for protocol=%s, path=%s","messagePattern":"Failed during source_listing for protocol=(.+?), path=(.+?)","errorType":"exception","errorClass":"IOException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/source/reader/FileDiscoveryScanner.java","lineNumber":88,"sourceCode":"                            status -> {\n                                stats.sourceEntries++;\n                                if (stats.sourceEntries % PROGRESS_INTERVAL == 0) {\n                                    log.info(\n                                            \"File source listing progress: phase=source_construction, entries={}, candidates={}\",\n                                            stats.sourceEntries,\n                                            stats.candidates);\n                                }\n                                if (status.isDirectory()) {\n                                    if (recursive && !status.getPath().getName().startsWith(\".\")) {\n                                        directories.addLast(status.getPath());\n                                    }\n                                    return;\n                                }\n                                process(status, filter, candidateConsumer, stats);\n                            });\n                    stats.listedDirectories++;\n                } catch (IOException e) {\n                    throw new IOException(\n                            \"Failed during source_listing for protocol=\"\n                                    + scheme(directory)\n                                    + \", path=\"\n                                    + mask(directory),\n                            e);\n                }\n            }\n        }\n        stats.listingNanos = System.nanoTime() - started - stats.filteringNanos;\n        return stats;\n    }\n\n    private static void process(\n            FileStatus status,\n            FileFilter filter,\n            FileStatusListingSession.FileStatusConsumer candidateConsumer,\n            ScanStats stats)\n            throws IOException {","sourceCodeStart":70,"sourceCodeEnd":106,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/source/reader/FileDiscoveryScanner.java#L70-L106","documentation":"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.","triggerScenarios":"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.","commonSituations":"See trigger scenarios.","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"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}