pentaho/pentaho-kettle · error · KettleException

RssOutput.Log.ErrorFindingField

Error message

RssOutput.Log.ErrorFindingField

What it means

In RssOutput.processRow, when 'filename in field' mode is enabled, the step looks up the configured filename field's index in the incoming row. If indexOfValue() returns -1 (the field does not exist in the stream), the step logs and throws a KettleException with 'RssOutput.Log.ErrorFindingField' naming the missing field.

Solutions

  1. Open the RSS Output step dialog and set 'filename field' to a field that actually exists in the input stream (check the 'Fields' preview).
  2. Add a Select Values / Rename step upstream to produce the expected field name.
  3. If the filename should be constant, uncheck 'filename in field' and set a literal filename instead.

Example fix

// before (dialog config)
fileNameField = "file_name"; // stream has "filename"
// after
fileNameField = "filename"; // must match RowMeta field name exactly
Defensive patterns

Strategy: validation

Validate before calling

if (inputRowMeta.indexOfValue(fileNameField) < 0) {
  throw new KettleException("Filename field not found in input stream: " + fileNameField);
}

Try / catch

try {
  idx = inputRowMeta.indexOfValue(meta.getFileNameField());
} catch (Exception e) { /* handled upstream */ }
if (idx < 0) { /* fail fast with a clear message before processRow */ }

Prevention

When it happens

Trigger: RSS Output configured with 'Get filename from field' checked and a FilenameField name that doesn't match any column of the incoming row — field renamed upstream, typo in config, or step wired to a different stream than designed.

Common situations: Renaming/deleting the source column feeding RSS Output; copying a step between transformations whose streams differ; case-sensitive field name mismatch.

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/dcbb644412320381. Report an issue: GitHub.

Appendix: source

Thrown at plugins/rss/impl/src/main/java/org/pentaho/di/trans/steps/rssoutput/RssOutput.java:137

      data.outputRowMeta = data.inputRowMeta.clone();
      meta.getFields( getTransMeta().getBowl(), data.outputRowMeta, getStepname(), null, null, this, repository,
        metaStore );
      // Let's check for filename...

      if ( meta.isFilenameInField() ) {
        if ( Utils.isEmpty( meta.getFileNameField() ) ) {
          logError( BaseMessages.getString( PKG, "RssOutput.Log.FilenameFieldMissing" ) );
          setErrors( 1 );
          stopAll();
          return false;
        }

        // get filename field index
        data.indexOfFieldfilename = data.inputRowMeta.indexOfValue( meta.getFileNameField() );
        if ( data.indexOfFieldfilename < 0 ) {
          // The field is unreachable !
          logError( BaseMessages.getString( PKG, "RssOutput.Log.ErrorFindingField", meta.getFileNameField() ) );
          throw new KettleException( BaseMessages.getString( PKG, "RssOutput.Log.ErrorFindingField", meta
            .getFileNameField() ) );
        }

      } else {
        data.filename = buildFilename();
      }

      // Check if filename is empty..
      if ( Utils.isEmpty( data.filename ) ) {
        logError( BaseMessages.getString( PKG, "RssOutput.Log.FilenameEmpty" ) );
        throw new KettleException( BaseMessages.getString( PKG, "RssOutput.Log.FilenameEmpty" ) );
      }

      // Do we need to create parent folder ?
      if ( meta.isCreateParentFolder() ) {
        // Check for parent folder
        FileObject parentfolder = null;
        try {

View on GitHub (pinned to f3058517a1)