pentaho/pentaho-kettle · error · KettleStepException
XsdValidator.Exception.ErrorResultFieldMissing
Error message
XsdValidator.Exception.ErrorResultFieldMissing
What it means
XsdValidator.processRow requires a result field name in which to store the validation outcome (true/false). If meta.getResultfieldname() is null, it logs and throws this localized KettleStepException. This is a step configuration error detected at runtime before any row processing.
Solutions
- Open the XSD Validator step and set the 'Result fieldname' (e.g. result)
- Re-save and re-run the transformation
- Verify with the step's check/test that the configuration is complete
Example fix
// before <Resultfieldname/> // after <Resultfieldname>validation_result</Resultfieldname>
Defensive patterns
Strategy: validation
Validate before calling
if (meta.getResultfieldname() == null || meta.getResultfieldname().isEmpty()) throw new IllegalStateException("XSD Validator result fieldname not set"); Type guard
boolean resultFieldSet = meta.getResultfieldname() != null && !meta.getResultfieldname().trim().isEmpty();
Try / catch
try { step.init(); step.processRow(); } catch (KettleStepException e) { log.error("Configure the XSD Validator result fieldname", e); } Prevention
- Fill in all required dialog fields before saving the step
- Use the step's check results to catch blank required settings
- Standardize result field names across transformations
- Review step config when copying steps between transformations
When it happens
Trigger: processRow on the first row when the 'Result fieldname' was never set in the XSD Validator step dialog (empty/blank field name).
Common situations: Freshly added XSD Validator step configured with only the XML and XSD fields but the result field left blank; result field cleared during a dialog edit.
Understand the failure class
Background: "missing required argument" and "the following required arguments were not provided": what required-argument errors mean and how to fix them — this error's family across 20 libraries.
Related errors
- XsdValidator.Exception.CouldnotFindField
- A connection of type PALO is expected
- A connection of type PALO is expected
- At least one slave server is required to be present in…
- Caught a number format exception converting minimum length…
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/19f6dbe5572504e5.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/xml/core/src/main/java/org/pentaho/di/trans/steps/xsdvalidator/XsdValidator.java:103
// Check if XML stream is given
if ( meta.getXMLStream() != null ) {
// Try to get XML Field index
data.xmlindex = getInputRowMeta().indexOfValue( meta.getXMLStream() );
// Let's check the Field
if ( data.xmlindex < 0 ) {
// The field is unreachable !
logError( BaseMessages.getString( PKG, "XsdValidator.Log.ErrorFindingField" ) + "[" + meta.getXMLStream()
+ "]" );
throw new KettleStepException( BaseMessages.getString( PKG, "XsdValidator.Exception.CouldnotFindField", meta
.getXMLStream() ) );
}
// Let's check that Result Field is given
if ( meta.getResultfieldname() == null ) {
// Result field is missing !
logError( BaseMessages.getString( PKG, "XsdValidator.Log.ErrorResultFieldMissing" ) );
throw new KettleStepException( BaseMessages.getString( PKG, "XsdValidator.Exception.ErrorResultFieldMissing" ) );
}
// Is XSD file is provided?
if ( meta.getXSDSource().equals( meta.SPECIFY_FILENAME ) ) {
if ( meta.getXSDFilename() == null ) {
logError( BaseMessages.getString( PKG, "XsdValidator.Log.ErrorXSDFileMissing" ) );
throw new KettleStepException( BaseMessages.getString( PKG, "XsdValidator.Exception.ErrorXSDFileMissing" ) );
} else {
// Is XSD file exists ?
FileObject xsdfile = null;
try {
xsdfile = KettleVFS.getInstance( getTransMeta().getBowl() ).getFileObject( environmentSubstitute( meta.getXSDFilename() ), getTransMeta() );
if ( !xsdfile.exists() ) {
logError( BaseMessages.getString( PKG, "XsdValidator.Log.Error.XSDFileNotExists" ) );
throw new KettleStepException( BaseMessages.getString( PKG, "XsdValidator.Exception.XSDFileNotExists" ) );
}
} catch ( Exception e ) {View on GitHub (pinned to f3058517a1)