Data & Analytics
Airbyte SFTP Bulk reports EMPTY_STREAM while the file exists
Diagnose root-folder and glob matching before widening an Airbyte SFTP stream to unrelated files.
October 29, 2026
An Airbyte SFTP Bulk stream has a file newer than its configured start date, yet discovery returns EMPTY_STREAM. In a reported v1.9.3 reproduction, folder_path is / and a relative glob such as downloaded/client2/Lacey* fails to match an existing file. The reporter traced a double slash in the generated file URI and a mismatch between normalized and original glob values. This is a precise connector case, not a reason to declare every empty stream a connector bug.
Separate absence from matching failure
From the same SFTP account, list the configured root and target directory. Record the actual filename, case, last-modified time, start-date filter, connector version, and the glob. Test a narrow file pattern rather than **, which can match unrelated CSV or archive files and contaminate the destination. The Airbyte source guide is the baseline for supported configuration; compare it with the deployed connector version.
Reproduce without moving production data
The issue shows that alternative folder/glob combinations behave differently, and one broader pattern reaches a separate UTF-8 parse error. That distinction is useful: a discovery fix does not prove successful parsing or safe ingestion. In a disposable connection, try a single known file and inspect discovery logs, then a sample sync into a test destination. Compare row count and filenames before expanding scope.
Avoid a fragile permanent workaround
The reporter found a //-prefixed glob that matches under the current behavior, but described it as a duplicate-slash workaround. Keep such a workaround isolated and documented if an urgent delivery requires it; retest when the connector updates. Escalate a minimal reproduction with version, path, glob, and logs. Do not change a production stream to a broad wildcard merely to make its status green.
Adovo’s view
An empty stream is an observation, not an explanation. Prove whether files are absent, filtered, unmatched, or unreadable. A pipeline that succeeds by ingesting the wrong files is a worse failure than one that stops visibly.
