{"record":{"id":"1deb214b2c135fb0","repo":"pentaho/pentaho-kettle","slug":"pargzipcsvinput-exception-filenamefieldnotfound","errorCode":null,"errorMessage":"ParGzipCsvInput.Exception.FilenameFieldNotFound","messagePattern":"ParGzipCsvInput\\.Exception\\.FilenameFieldNotFound","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/trans/steps/parallelgzipcsv/ParGzipCsvInput.java","lineNumber":235,"sourceCode":"    }\n  }\n\n  private void getFilenamesFromPreviousSteps() throws KettleException {\n    List<String> filenames = new ArrayList<String>();\n    boolean firstRow = true;\n    int index = -1;\n    Object[] row = getRow();\n    while ( row != null ) {\n\n      if ( firstRow ) {\n        firstRow = false;\n\n        // Get the filename field index...\n        //\n        String filenameField = environmentSubstitute( meta.getFilenameField() );\n        index = getInputRowMeta().indexOfValue( filenameField );\n        if ( index < 0 ) {\n          throw new KettleException( BaseMessages.getString(\n            PKG, \"ParGzipCsvInput.Exception.FilenameFieldNotFound\", filenameField ) );\n        }\n      }\n\n      String filename = getInputRowMeta().getString( row, index );\n      filenames.add( filename ); // add it to the list...\n\n      row = getRow(); // Grab another row...\n    }\n\n    data.filenames = filenames.toArray( new String[filenames.size()] );\n\n    logBasic( BaseMessages.getString( PKG, \"ParGzipCsvInput.Log.ReadingFromNrFiles\", Integer\n      .toString( data.filenames.length ) ) );\n  }\n\n  public void dispose( StepMetaInterface smi, StepDataInterface sdi ) {\n    try {","sourceCodeStart":217,"sourceCodeEnd":253,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/trans/steps/parallelgzipcsv/ParGzipCsvInput.java#L217-L253","documentation":"Message key ParGzipCsvInput.Exception.FilenameFieldNotFound thrown in getFilenamesFromPreviousSteps: the configured filename field (after variable substitution) is not present in the incoming rows — indexOfValue returned a negative index — so the step cannot locate the files to read.","triggerScenarios":"Thrown at engine/src/main/java/org/pentaho/di/trans/steps/parallelgzipcsv/ParGzipCsvInput.java:235 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set the filename field to an actual field name present in the incoming stream","Add or rename the upstream field that carries the file path","Check variable substitution on the field name for typos"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"f3058517a153da500bf4551f46d79b91bf8ec552","analyzedAt":"2026-09-13T14:04:16.340Z","contentChangedAt":"2026-09-13T14:04:16.340Z","schemaVersion":2},"datasetVersion":"2026-09-20T23:17:15.980Z"}