pentaho/pentaho-kettle · error · KettleXMLException
JobEntryDeleteResultFilenames.CanNotLoadFromRep
Error message
JobEntryDeleteResultFilenames.CanNotLoadFromRep
What it means
Thrown when reading a 'Delete Result Filenames' job entry's attributes (foldername, wildcard settings) from the repository fails. loadRep() catches the KettleException from the repository getters and rethrows as KettleXMLException with the entry id and the DB error message. Despite the XML exception type, the failure is repository/database related.
Solutions
- Check dbe.getMessage() in the thrown error for the underlying repository problem
- Restore database connectivity and retry the job load
- Verify the repository schema is current (run upgrade scripts)
- Re-save the entry from Spoon to rebuild its attribute rows
Example fix
// before
entry.loadRep(rep, metaStore, idJobEntry, databases, slaveServers); // throws KettleXMLException on DB error
// after
try {
entry.loadRep(rep, metaStore, idJobEntry, databases, slaveServers);
} catch (KettleXMLException e) {
logError("Repo load failed for id " + idJobEntry + ": " + e.getMessage());
throw e;
} Defensive patterns
Strategy: try-catch
Validate before calling
if (rep instanceof KettleDatabaseRepository
&& !((KettleDatabaseRepository) rep).isConnected()) {
throw new IllegalStateException("Connect repository before loadRep");
} Try / catch
try {
entry.loadRep(rep, metaStore, idJobEntry, databases, slaveServers);
} catch (KettleXMLException e) {
// note: DB failure is wrapped in KettleXMLException here
logError("Repo load failed id=" + idJobEntry + ": " + e.getMessage());
throw e;
} Prevention
- Ensure repository connection is alive before loading jobs
- Keep repository schema upgraded with your Pentaho release
- Check SELECT grants on repository tables
- Note this entry wraps DB errors in KettleXMLException — inspect message, not just type
When it happens
Trigger: Calling loadRep() while loading a job from a database repository when any rep.getJobEntryAttribute*() call throws: connection failure, missing table, or repository-level error.
Common situations: Repository DB unreachable mid-load; schema version mismatch after upgrade; orphaned/missing attribute rows; insufficient SELECT permissions on r_jobentry_attribute.
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
- JobDosToUnix.Error.Exception.UnableLoadRep
- JobDosToUnix.Error.Exception.UnableSaveRep
- JobEntryDeleteFiles.UnableToSaveToRepo
- JobEntryDeleteFolders.UnableToLoadFromRepo
- JobEntryDeleteFolders.UnableToSaveToRepo
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/faaa8feee9451f9e.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/job/entries/deleteresultfilenames/JobEntryDeleteResultFilenames.java:115
specifywildcard = "Y".equalsIgnoreCase( XMLHandler.getTagValue( entrynode, "specify_wildcard" ) );
wildcard = XMLHandler.getTagValue( entrynode, "wildcard" );
wildcardexclude = XMLHandler.getTagValue( entrynode, "wildcardexclude" );
} catch ( KettleXMLException xe ) {
throw new KettleXMLException( BaseMessages.getString(
PKG, "JobEntryDeleteResultFilenames.CanNotLoadFromXML", xe.getMessage() ) );
}
}
public void loadRep( Repository rep, IMetaStore metaStore, ObjectId id_jobentry, List<DatabaseMeta> databases,
List<SlaveServer> slaveServers ) throws KettleException {
try {
foldername = rep.getJobEntryAttributeString( id_jobentry, "foldername" );
specifywildcard = rep.getJobEntryAttributeBoolean( id_jobentry, "specify_wildcard" );
wildcard = rep.getJobEntryAttributeString( id_jobentry, "wildcard" );
wildcardexclude = rep.getJobEntryAttributeString( id_jobentry, "wildcardexclude" );
} catch ( KettleException dbe ) {
throw new KettleXMLException( BaseMessages.getString(
PKG, "JobEntryDeleteResultFilenames.CanNotLoadFromRep", "" + id_jobentry, dbe.getMessage() ) );
}
}
public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_job ) throws KettleException {
try {
rep.saveJobEntryAttribute( id_job, getObjectId(), "foldername", foldername );
rep.saveJobEntryAttribute( id_job, getObjectId(), "specify_wildcard", specifywildcard );
rep.saveJobEntryAttribute( id_job, getObjectId(), "wildcard", wildcard );
rep.saveJobEntryAttribute( id_job, getObjectId(), "wildcardexclude", wildcardexclude );
} catch ( KettleDatabaseException dbe ) {
throw new KettleXMLException( BaseMessages.getString(
PKG, "JobEntryDeleteResultFilenames.CanNotSaveToRep", "" + id_job, dbe.getMessage() ) );
}
}
public void setSpecifyWildcard( boolean specifywildcard ) {
this.specifywildcard = specifywildcard;View on GitHub (pinned to f3058517a1)