pentaho/pentaho-kettle · error · KettleException
Unable to load job entry of type 'xsdvalidator' from the…
Error message
Unable to load job entry of type 'xsdvalidator' from the repository for id_jobentry=<id_jobentry>
What it means
JobEntryXSDValidator.loadRep rethrows KettleException when reading the entry's attributes (xmlfilename, xsdfilename, allowExternalEntities) from the Pentaho repository fails for the given id_jobentry. The database-level KettleException cause is preserved.
Solutions
- Check the wrapped KettleException cause for the database error
- Verify repository database connectivity
- Confirm the r_jobentry_attribute rows exist for this id_jobentry
- Upgrade/repair the repository schema to match your PDI version
Defensive patterns
Strategy: try-catch
Try / catch
try {
entry.loadRep( rep, metaStore, id_jobentry, databases, slaveServers );
} catch ( KettleException e ) {
logError( "Repository load failed for id_jobentry=" + id_jobentry + ": " + e.getCause(), e );
throw e;
} Prevention
- Check repository DB health before loading jobs
- Never delete r_jobentry_attribute rows directly in SQL
- Keep repository schema in sync with the PDI version
- Use repository backup/restore tooling
When it happens
Trigger: Loading the job entry from a repository where rep.getJobEntryAttributeString throws a KettleException (connection failure, missing rows, schema mismatch).
Common situations: Repository database temporarily unreachable; repository schema version mismatch; entry rows deleted directly in the database; corrupted repository record.
Understand the failure class
Background: Database query failed: Internal Server Error 500s wrapping SQL, Prisma, and connection failures — what to check first — this error's family across 16 libraries.
Related errors
- Unable to load job entry for type file exists from the…
- Unable to load job entry from the repository for…
- Unable to load job entry from the repository for…
- Unable to load job entry of type 'Msgbox Info' from the…
- Unable to load job entry of type 'special' from the…
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/12c1944e3ff5a2c4.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/xml/core/src/main/java/org/pentaho/di/job/entries/xsdvalidator/JobEntryXSDValidator.java:132
super.loadXML( entrynode, databases, slaveServers );
xmlfilename = XMLHandler.getTagValue( entrynode, "xmlfilename" );
xsdfilename = XMLHandler.getTagValue( entrynode, "xsdfilename" );
allowExternalEntities = YES.equalsIgnoreCase( XMLHandler.getTagValue( entrynode, "allowExternalEntities" ) );
} catch ( KettleXMLException xe ) {
throw new KettleXMLException( "Unable to load job entry of type 'xsdvalidator' from XML node", xe );
}
}
public void loadRep( Repository rep, IMetaStore metaStore, ObjectId id_jobentry, List<DatabaseMeta> databases,
List<SlaveServer> slaveServers ) throws KettleException {
try {
xmlfilename = rep.getJobEntryAttributeString( id_jobentry, "xmlfilename" );
xsdfilename = rep.getJobEntryAttributeString( id_jobentry, "xsdfilename" );
allowExternalEntities =
Boolean.parseBoolean( rep.getJobEntryAttributeString( id_jobentry, "allowExternalEntities" ) );
} catch ( KettleException dbe ) {
throw new KettleException( "Unable to load job entry of type 'xsdvalidator' from the repository for id_jobentry="
+ id_jobentry, dbe );
}
}
public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_job ) throws KettleException {
try {
rep.saveJobEntryAttribute( id_job, getObjectId(), "xmlfilename", xmlfilename );
rep.saveJobEntryAttribute( id_job, getObjectId(), "xsdfilename", xsdfilename );
rep.saveJobEntryAttribute( id_job, getObjectId(), "allowExternalEntities", allowExternalEntities );
} catch ( KettleDatabaseException dbe ) {
throw new KettleException( "Unable to save job entry of type 'xsdvalidator' to the repository for id_job="
+ id_job, dbe );
}
}
public String getRealxmlfilename() {
return environmentSubstitute( getxmlFilename() );View on GitHub (pinned to f3058517a1)