pentaho/pentaho-kettle · error · KettleException
RssInput.Log.UrlFieldNameMissing
RssInput.Log.UrlFieldNameMissing
Error message
RssInput.Log.UrlFieldNameMissing
What it means
RssInput.readNextUrl logs and throws a KettleException when the URL field name configured for the step is empty. The step needs a stream field containing the feed URL to fetch; without a field name it cannot proceed.
Solutions
- Open the RSS Input step and select the input field that contains the feed URL
- Ensure the upstream step provides a URL column
- Re-enter step settings if they were lost during copy/paste
Example fix
// before urlFieldname = ""; // after urlFieldname = "feed_url";
Defensive patterns
Strategy: validation
Validate before calling
if (urlFieldname == null || urlFieldname.trim().isEmpty()) {
throw new KettleException("URL field name must be set in RSS Input step");
} Try / catch
try { processRow(); } catch (KettleException e) {
logError("RSS Input configuration error: " + e.getMessage());
setErrors(1);
} Prevention
- Always select a URL field in the RSS Input dialog
- Verify step settings after copying steps between transformations
- Add a step-level configuration check via the check() remarks in Spoon
When it happens
Trigger: The 'URL fieldname' setting in the RSS Input step dialog is blank (meta.getUrlFieldname() is null or empty).
Common situations: Step configured without selecting the URL column; dialog setting lost after copying a step between transformations; XML config missing the url field tag.
Understand the failure class
Background: "must not be empty", "cannot be empty" — required-field validation errors across open-source libraries — this error's family across 41 libraries.
Related errors
- ChangeFileEncoding.Error.FilenameFieldMissing
- ChangeFileEncoding.Error.TargetFilenameFieldMissing
- ColumnExists.Error.TablenameFieldMissing
- GetFilesRowsCount.Log.NoField
- GetTableNames.Log.NoSchemaField
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/f2f620ad8dfff108.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/rss/impl/src/main/java/org/pentaho/di/trans/steps/rssinput/RssInput.java:120
return false;
}
if ( first ) {
first = false;
data.inputRowMeta = getInputRowMeta();
data.outputRowMeta = data.inputRowMeta.clone();
meta.getFields( getTransMeta().getBowl(), data.outputRowMeta, getStepname(), null, null, this, repository,
metaStore );
// Get total previous fields
data.totalpreviousfields = data.inputRowMeta.size();
// Create convert meta-data objects that will contain Date & Number formatters
data.convertRowMeta = data.outputRowMeta.cloneToType( ValueMetaInterface.TYPE_STRING );
// Check is URL field is provided
if ( Utils.isEmpty( meta.getUrlFieldname() ) ) {
logError( BaseMessages.getString( PKG, "RssInput.Log.UrlFieldNameMissing" ) );
throw new KettleException( BaseMessages.getString( PKG, "RssInput.Log.UrlFieldNameMissing" ) );
}
// cache the position of the field
if ( data.indexOfUrlField < 0 ) {
data.indexOfUrlField = data.inputRowMeta.indexOfValue( meta.getUrlFieldname() );
if ( data.indexOfUrlField < 0 ) {
// The field is unreachable !
logError( BaseMessages.getString( PKG, "RssInput.Log.ErrorFindingField" )
+ "[" + meta.getUrlFieldname() + "]" );
throw new KettleException( BaseMessages.getString( PKG, "RssInput.Exception.ErrorFindingField", meta
.getUrlFieldname() ) );
}
}
}
// get URL field value
data.currenturl = data.inputRowMeta.getString( data.readrow, data.indexOfUrlField );
View on GitHub (pinned to f3058517a1)