{"record":{"id":"6ba3842e5b2cfb2c","repo":"pentaho/pentaho-kettle","slug":"rssinput-exception-errorfindingfield","errorCode":"RssInput.Exception.ErrorFindingField","errorMessage":"RssInput.Exception.ErrorFindingField","messagePattern":"RssInput\\.Exception\\.ErrorFindingField","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/rss/impl/src/main/java/org/pentaho/di/trans/steps/rssinput/RssInput.java","lineNumber":130,"sourceCode":"        data.totalpreviousfields = data.inputRowMeta.size();\n\n        // Create convert meta-data objects that will contain Date & Number formatters\n        data.convertRowMeta = data.outputRowMeta.cloneToType( ValueMetaInterface.TYPE_STRING );\n\n        // Check is URL field is provided\n        if ( Utils.isEmpty( meta.getUrlFieldname() ) ) {\n          logError( BaseMessages.getString( PKG, \"RssInput.Log.UrlFieldNameMissing\" ) );\n          throw new KettleException( BaseMessages.getString( PKG, \"RssInput.Log.UrlFieldNameMissing\" ) );\n        }\n\n        // cache the position of the field\n        if ( data.indexOfUrlField < 0 ) {\n          data.indexOfUrlField = data.inputRowMeta.indexOfValue( meta.getUrlFieldname() );\n          if ( data.indexOfUrlField < 0 ) {\n            // The field is unreachable !\n            logError( BaseMessages.getString( PKG, \"RssInput.Log.ErrorFindingField\" )\n              + \"[\" + meta.getUrlFieldname() + \"]\" );\n            throw new KettleException( BaseMessages.getString( PKG, \"RssInput.Exception.ErrorFindingField\", meta\n              .getUrlFieldname() ) );\n          }\n        }\n\n      }\n      // get URL field value\n      data.currenturl = data.inputRowMeta.getString( data.readrow, data.indexOfUrlField );\n\n    } else {\n      if ( data.last_url ) {\n        return false;\n      }\n      if ( data.urlnr >= data.urlsize ) { // finished processing!\n\n        if ( log.isDetailed() ) {\n          logDetailed( BaseMessages.getString( PKG, \"RssInput.Log.FinishedProcessing\" ) );\n        }\n        return false;","sourceCodeStart":112,"sourceCodeEnd":148,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/rss/impl/src/main/java/org/pentaho/di/trans/steps/rssinput/RssInput.java#L112-L148","documentation":"RssInput.readNextUrl throws this KettleException when the configured URL field name is non-empty but does not exist in the incoming row (inputRowMeta.indexOfValue returns -1). The step cannot read the feed URL from the stream.","triggerScenarios":"The URL field name in the dialog does not match any field in the input row stream, case-sensitively.","commonSituations":"Upstream step renamed or removed the URL field; typo in the dialog; different field casing after a Select values step.","solutions":["Verify the URL field name matches an incoming stream field exactly","Use 'Get Fields' in the step dialog to refresh the field list","Add the URL field upstream (e.g. via Select values or a constant)"],"exampleFix":"// before\nurlFieldname = \"url\"; // stream has 'Url'\n// after\nurlFieldname = \"Url\";","handlingStrategy":"validation","validationCode":"if (inputRowMeta.indexOfValue(urlFieldname) < 0) {\n  throw new KettleException(\"URL field not in stream: \" + urlFieldname);\n}","typeGuard":null,"tryCatchPattern":"try { readNextUrl(); } catch (KettleException e) {\n  logError(\"RSS URL field missing from stream: \" + e.getMessage());\n  setErrors(1);\n}","preventionTips":["Use 'Get Fields' to pick the URL field name","Avoid renaming the URL field upstream after configuring the step","Test with row preview before running the full transformation"],"tags":["kettle","rss-input","field-lookup"],"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"}