pentaho/pentaho-kettle · error · KettleXMLException
JobEntryCopyMoveResultFilenames.CanNotLoadFromRep
Error message
JobEntryCopyMoveResultFilenames.CanNotLoadFromRep
What it means
JobEntryCopyMoveResultFilenames.loadRep throws this KettleXMLException (notably wrapping a KettleException) when reading the entry's boolean/string attributes from the repository fails. The message includes id_jobentry and the database error message, telling the developer the entry could not be loaded from repository tables.
Solutions
- Verify repository database connectivity and retry opening the job.
- Run repository schema repair/upgrade so R_JOBENTRY_ATTRIBUTE matches the expected version.
- Re-save the job entry in Spoon to restore missing attribute rows.
- Read dbe.getMessage() included in the exception to identify the underlying SQL failure.
Defensive patterns
Strategy: try-catch
Validate before calling
if (id_jobentry == null) throw new IllegalArgumentException("id_jobentry required for loadRep");
if (!rep.isConnected() && !rep.connect()) throw new IllegalStateException("Repository unreachable"); Try / catch
try {
jobEntry.loadRep(rep, metaStore, id_jobentry, databases, slaveServers);
} catch (KettleXMLException e) {
logError("Repository load failed for id_jobentry=" + id_jobentry + ": " + e.getMessage(), e);
// reconnect repository and retry once, then surface to user
} Prevention
- Verify DB connectivity before opening repository jobs
- Keep repository schema upgraded to the Pentaho DI version
- Watch for partially saved entries after prior save failures
- Log the nested dbe message included in this exception
When it happens
Trigger: Calling loadRep when the repository throws KettleException while fetching attributes like 'SpecifyWildcard', 'Wildcard', 'OverwriteFile', 'AddDestinationFilename' for the given id_jobentry — e.g. connection failure or broken repository schema.
Common situations: Repository DB unreachable during job open; schema mismatch after upgrade; rows for this job entry missing because the entry was partially saved previously.
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
- GetSequenceMeta.Exception.UnableToReadStepInfo
- GetSequenceMeta.Exception.UnableToSaveStepInfo
- JobCopyFiles.Error.Exception.UnableLoadRep
- JobMoveFiles.Error.Exception.UnableLoadRep
- Unable to load job entry of type 'create file' from the…
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/936337035885adb7.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/job/entries/copymoveresultfilenames/JobEntryCopyMoveResultFilenames.java:213
wildcard = rep.getJobEntryAttributeString( id_jobentry, "wildcard" );
wildcardexclude = rep.getJobEntryAttributeString( id_jobentry, "wildcardexclude" );
destination_folder = rep.getJobEntryAttributeString( id_jobentry, "destination_folder" );
nr_errors_less_than = rep.getJobEntryAttributeString( id_jobentry, "nr_errors_less_than" );
success_condition = rep.getJobEntryAttributeString( id_jobentry, "success_condition" );
add_date = rep.getJobEntryAttributeBoolean( id_jobentry, "add_date" );
add_time = rep.getJobEntryAttributeBoolean( id_jobentry, "add_time" );
SpecifyFormat = rep.getJobEntryAttributeBoolean( id_jobentry, "SpecifyFormat" );
date_time_format = rep.getJobEntryAttributeString( id_jobentry, "date_time_format" );
AddDateBeforeExtension = rep.getJobEntryAttributeBoolean( id_jobentry, "AddDateBeforeExtension" );
action = rep.getJobEntryAttributeString( id_jobentry, "action" );
OverwriteFile = rep.getJobEntryAttributeBoolean( id_jobentry, "OverwriteFile" );
CreateDestinationFolder = rep.getJobEntryAttributeBoolean( id_jobentry, "CreateDestinationFolder" );
RemovedSourceFilename = rep.getJobEntryAttributeBoolean( id_jobentry, "RemovedSourceFilename" );
AddDestinationFilename = rep.getJobEntryAttributeBoolean( id_jobentry, "AddDestinationFilename" );
} catch ( KettleException dbe ) {
throw new KettleXMLException( BaseMessages.getString(
PKG, "JobEntryCopyMoveResultFilenames.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 );
rep.saveJobEntryAttribute( id_job, getObjectId(), "destination_folder", destination_folder );
rep.saveJobEntryAttribute( id_job, getObjectId(), "nr_errors_less_than", nr_errors_less_than );
rep.saveJobEntryAttribute( id_job, getObjectId(), "success_condition", success_condition );
rep.saveJobEntryAttribute( id_job, getObjectId(), "add_date", add_date );
rep.saveJobEntryAttribute( id_job, getObjectId(), "add_time", add_time );
rep.saveJobEntryAttribute( id_job, getObjectId(), "SpecifyFormat", SpecifyFormat );
rep.saveJobEntryAttribute( id_job, getObjectId(), "date_time_format", date_time_format );View on GitHub (pinned to f3058517a1)