pentaho/pentaho-kettle · error · KettleException

AutoDoc.Exception.FilenameFieldNotFound

Error message

AutoDoc.Exception.FilenameFieldNotFound

What it means

AutoDoc.processRow throws KettleException 'AutoDoc.Exception.FilenameFieldNotFound' when the row's input row metadata does not contain the configured filename field. indexOfValue returns -1 and the step aborts. It is a configuration/row-shape mismatch: the field selected in the step settings is absent from the incoming stream.

Solutions

  1. Open the AutoDoc step settings and reselect the correct filename field from the available fields list.
  2. Confirm the upstream step actually outputs the filename field (check with a 'Get fields' preview).
  3. Fix the upstream field name or add a Select values step to (re)create it.
  4. Preview the input rows to confirm the exact field name and casing.

Example fix

// before (step config referencing removed field)
meta.setFilenameField("old_filename");
// after
meta.setFilenameField("filename"); // matches the field produced upstream
Defensive patterns

Strategy: validation

Validate before calling

public static void requireField(RowMetaInterface rowMeta, String fieldName) {
  try {
    rowMeta.indexOfValue(fieldName);
  } catch (KettleValueException e) {
    throw new IllegalStateException("Field not in input stream: " + fieldName);
  }
}
// call: requireField(inputRowMeta, "filename");

Prevention

When it happens

Trigger: The 'filename field' configured on the AutoDoc step does not match any field in the incoming row (renamed upstream, wrong step input, or field produced by a later step).

Common situations: Renaming or removing the filename field in an upstream Select values / Java Script step; connecting the wrong input hop; pass-through rows where the metadata differs from expectations.

Understand the failure class

Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.

Related errors


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

Appendix: source

Thrown at plugins/core/impl/src/main/java/org/pentaho/di/trans/steps/autodoc/AutoDoc.java:143

      }

      setOutputDone();
      return false;
    }

    if ( first ) {
      first = false;

      data.outputRowMeta = getInputRowMeta().clone();
      meta.getFields( getTransMeta().getBowl(), data.outputRowMeta, getStepname(), null, null, this, repository,
        metaStore );

      // Get the filename field index...
      //
      String filenameField = environmentSubstitute( meta.getFilenameField() );
      data.fileNameFieldIndex = getInputRowMeta().indexOfValue( filenameField );
      if ( data.fileNameFieldIndex < 0 ) {
        throw new KettleException( BaseMessages.getString(
          PKG, "AutoDoc.Exception.FilenameFieldNotFound", filenameField ) );
      }

      // Get the file type field index...
      //
      String fileTypeField = environmentSubstitute( meta.getFileTypeField() );
      data.fileTypeFieldIndex = getInputRowMeta().indexOfValue( fileTypeField );
      if ( data.fileTypeFieldIndex < 0 ) {
        throw new KettleException( BaseMessages.getString(
          PKG, "AutoDoc.Exception.FileTypeFieldNotFound", fileTypeField ) );
      }

      data.repository = getTrans().getRepository();
      if ( data.repository != null ) {
        data.tree = data.repository.loadRepositoryDirectoryTree();
      }

      // Initialize the repository information handlers (images, metadata, loading, etc)

View on GitHub (pinned to f3058517a1)