FilteringReader::read() returned Ok(0) (EOF) when a filter consumed a chunk without producing output. Filters like skip_lines need to see multiple chunks before outputting anything — returning 0 prematurely truncated the stream. Loop until the filter produces output or the underlying reader is truly exhausted.