pentaho/pentaho-kettle · error · KettleException

Unable to read bytes from the gzipped input file

Error message

Unable to read  bytes from the gzipped input file

What it means

Wrapper error in ParGzipCsvInputData.getMoreData: reading the requested block of bytes from the gzipped input stream failed with an IOException before size bytes could be filled (EOF is handled separately by setting eofReached). The requested byte count is in the message; the cause is chained.

Solutions

  1. Verify the gzip file is not truncated or corrupted
  2. Check disk/streams availability and file permissions
  3. Inspect the chained IOException for the underlying read error
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at engine/src/main/java/org/pentaho/di/trans/steps/parallelgzipcsv/ParGzipCsvInputData.java:159 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13). Data as JSON: /api/errors/ce131c61a65265e2. Report an issue: GitHub.

Appendix: source

Thrown at engine/src/main/java/org/pentaho/di/trans/steps/parallelgzipcsv/ParGzipCsvInputData.java:159

      while ( bytesRead < size ) {
        int n = gzis.read( byteBuffer, maxBuffer, leftToRead );
        if ( n < 0 ) {
          // EOF, nothing more to read in combination with the need to get more data means we're done.
          //
          eofReached = true;
          fileReadPosition += bytesRead;
          return bytesRead == 0;
        }
        bytesRead += n; // bytes read so far
        maxBuffer += n; // that's where we ended up so far
        leftToRead -= n; // a little bit less to read
      }
      fileReadPosition += bytesRead; // keep track of where we are in the file...

      return false; // all OK

    } catch ( IOException e ) {
      throw new KettleException( "Unable to read " + size + " bytes from the gzipped input file", e );
    }
  }
}

View on GitHub (pinned to f3058517a1)