{"record":{"id":"dcbb644412320381","repo":"pentaho/pentaho-kettle","slug":"rssoutput-log-errorfindingfield","errorCode":null,"errorMessage":"RssOutput.Log.ErrorFindingField","messagePattern":"RssOutput\\.Log\\.ErrorFindingField","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/rss/impl/src/main/java/org/pentaho/di/trans/steps/rssoutput/RssOutput.java","lineNumber":137,"sourceCode":"      data.outputRowMeta = data.inputRowMeta.clone();\n      meta.getFields( getTransMeta().getBowl(), data.outputRowMeta, getStepname(), null, null, this, repository,\n        metaStore );\n      // Let's check for filename...\n\n      if ( meta.isFilenameInField() ) {\n        if ( Utils.isEmpty( meta.getFileNameField() ) ) {\n          logError( BaseMessages.getString( PKG, \"RssOutput.Log.FilenameFieldMissing\" ) );\n          setErrors( 1 );\n          stopAll();\n          return false;\n        }\n\n        // get filename field index\n        data.indexOfFieldfilename = data.inputRowMeta.indexOfValue( meta.getFileNameField() );\n        if ( data.indexOfFieldfilename < 0 ) {\n          // The field is unreachable !\n          logError( BaseMessages.getString( PKG, \"RssOutput.Log.ErrorFindingField\", meta.getFileNameField() ) );\n          throw new KettleException( BaseMessages.getString( PKG, \"RssOutput.Log.ErrorFindingField\", meta\n            .getFileNameField() ) );\n        }\n\n      } else {\n        data.filename = buildFilename();\n      }\n\n      // Check if filename is empty..\n      if ( Utils.isEmpty( data.filename ) ) {\n        logError( BaseMessages.getString( PKG, \"RssOutput.Log.FilenameEmpty\" ) );\n        throw new KettleException( BaseMessages.getString( PKG, \"RssOutput.Log.FilenameEmpty\" ) );\n      }\n\n      // Do we need to create parent folder ?\n      if ( meta.isCreateParentFolder() ) {\n        // Check for parent folder\n        FileObject parentfolder = null;\n        try {","sourceCodeStart":119,"sourceCodeEnd":155,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/rss/impl/src/main/java/org/pentaho/di/trans/steps/rssoutput/RssOutput.java#L119-L155","documentation":"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.","triggerScenarios":"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.","commonSituations":"Renaming/deleting the source column feeding RSS Output; copying a step between transformations whose streams differ; case-sensitive field name mismatch.","solutions":["Open the RSS Output step dialog and set 'filename field' to a field that actually exists in the input stream (check the 'Fields' preview).","Add a Select Values / Rename step upstream to produce the expected field name.","If the filename should be constant, uncheck 'filename in field' and set a literal filename instead."],"exampleFix":"// before (dialog config)\nfileNameField = \"file_name\"; // stream has \"filename\"\n// after\nfileNameField = \"filename\"; // must match RowMeta field name exactly","handlingStrategy":"validation","validationCode":"if (inputRowMeta.indexOfValue(fileNameField) < 0) {\n  throw new KettleException(\"Filename field not found in input stream: \" + fileNameField);\n}","typeGuard":null,"tryCatchPattern":"try {\n  idx = inputRowMeta.indexOfValue(meta.getFileNameField());\n} catch (Exception e) { /* handled upstream */ }\nif (idx < 0) { /* fail fast with a clear message before processRow */ }","preventionTips":["Preview input fields after any upstream changes","Keep field names stable or use a rename step to normalize","Match field names exactly (case-sensitive)"],"tags":["kettle","rss-output","field-missing","row-metadata"],"backgroundTag":"resource-not-found","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"}