pentaho/pentaho-kettle · error · KettleXMLException
CreditCardValidatorMeta.Exception.UnableToReadStepInfo
CreditCardValidatorMeta.Exception.UnableToReadStepInfo
Error message
CreditCardValidatorMeta.Exception.UnableToReadStepInfo
What it means
CreditCardValidatorMeta.loadXML reads step configuration from a transformation XML node via readData. If any XMLHandler.getTagValue call or parsing throws, the exception is wrapped in a KettleXMLException with UnableToReadStepInfo, chained to the original cause, indicating the step's saved XML could not be parsed.
Solutions
- Open the .ktr and inspect the <credit_card_validator> XML node for malformed tags
- Re-create the step in Spoon and re-save the transformation
- Compare the XML against a working transformation from the same PDI version
Example fix
// before <credit_card_validator><fieldname // after (well-formed XML) <credit_card_validator><fieldname>card</fieldname></credit_card_validator>
Defensive patterns
Strategy: try-catch
Validate before calling
// validate XML before loading
Document d = XMLHandler.loadXMLFile(new File("trans.ktr")); // fails fast on malformed XML Try / catch
try { meta.loadXML(stepnode, databases, metaStore); } catch (KettleXMLException e) { logError("Corrupt step XML: " + e.getCause()); } Prevention
- Never hand-edit transformation XML without validating well-formedness
- Keep export/import between the same or compatible PDI versions
- Back up .ktr files before manual edits
When it happens
Trigger: Loading a .ktr whose CreditCardValidator step node is malformed, contains an unexpected child, or XMLHandler throws while reading tags like fieldname/resultfieldname/cardtype.
Common situations: Hand-edited or truncated transformation files; transformations exported from a newer Pentaho version and opened in an older one; corrupted repository export.
Related errors
- ColumnExistsMeta.Exception.UnableToReadStepInfo
- ScriptMeta.Exception.UnableToLoadStepInfoFromXML
- SETVARIABLE0004
- StreamLookupMeta.Exception.UnableToLoadStepInfoFromXML
- SymmetricCryptoTransMeta.Exception.UnableToLoadStepInfoFromXML
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/7748da7522f11600.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/credit-card-validator/impl/src/main/java/org/pentaho/di/trans/steps/creditcardvalidator/CreditCardValidatorMeta.java:207
retval.append( " " ).append( XMLHandler.addTagValue( "fieldname", fieldname ) );
retval.append( " " ).append( XMLHandler.addTagValue( "resultfieldname", resultfieldname ) );
retval.append( " " ).append( XMLHandler.addTagValue( "cardtype", cardtype ) );
retval.append( " " ).append( XMLHandler.addTagValue( "onlydigits", onlydigits ) );
retval.append( " " ).append( XMLHandler.addTagValue( "notvalidmsg", notvalidmsg ) );
return retval.toString();
}
private void readData( Node stepnode ) throws KettleXMLException {
try {
fieldname = XMLHandler.getTagValue( stepnode, "fieldname" );
resultfieldname = XMLHandler.getTagValue( stepnode, "resultfieldname" );
cardtype = XMLHandler.getTagValue( stepnode, "cardtype" );
notvalidmsg = XMLHandler.getTagValue( stepnode, "notvalidmsg" );
onlydigits = "Y".equalsIgnoreCase( XMLHandler.getTagValue( stepnode, "onlydigits" ) );
} catch ( Exception e ) {
throw new KettleXMLException( BaseMessages.getString(
PKG, "CreditCardValidatorMeta.Exception.UnableToReadStepInfo" ), e );
}
}
public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases ) throws KettleException {
try {
fieldname = rep.getStepAttributeString( id_step, "fieldname" );
resultfieldname = rep.getStepAttributeString( id_step, "resultfieldname" );
cardtype = rep.getStepAttributeString( id_step, "cardtype" );
notvalidmsg = rep.getStepAttributeString( id_step, "notvalidmsg" );
onlydigits = rep.getStepAttributeBoolean( id_step, "onlydigits" );
} catch ( Exception e ) {
throw new KettleException( BaseMessages.getString(
PKG, "CreditCardValidatorMeta.Exception.UnexpectedErrorReadingStepInfo" ), e );
}
}
View on GitHub (pinned to f3058517a1)