pentaho/pentaho-kettle · error · KettleException
JobExportRepository.Meta.UnableLoadRep
JobExportRepository.Meta.UnableLoadRep
Error message
JobExportRepository.Meta.UnableLoadRep
What it means
JobEntryExportRepository.loadRep wraps repository read failures in a KettleException with the localized 'JobExportRepository.Meta.UnableLoadRep' message including the job entry id. Attributes for the entry could not be read from the repository.
Solutions
- Inspect the wrapped KettleException cause for the SQL error
- Verify repository connectivity and that the job entry still exists
- Run repository repair/upgrade utilities if schema versions differ
Defensive patterns
Strategy: try-catch
Try / catch
try { entry.loadRep( rep, metaStore, idJobEntry, databases, slaves ); } catch ( KettleException e ) { log.error( "Load from repo failed: " + e.getCause(), e ); } Prevention
- Keep repository schema and PDI version in sync
- Verify job entries exist before load
- Monitor repository DB health
When it happens
Trigger: loadRep invoked with an id_jobentry whose r_jobentry_attribute rows are missing/corrupt, or the repository connection fails during getJobEntryAttribute* calls.
Common situations: Repository schema mismatch after upgrades; deleted/purged repository rows; DB connectivity problems.
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
- JobEntryMSAccessBulkLoad.Meta.UnableLoadRep
- ElasticSearchBulkMeta.Exception.ErrorReadingRepository
- ElasticSearchBulkMeta.Exception.ErrorSavingToRepository
- ERROR_0002_Cannot_Load_Job_From_Repository
- ERROR_0002_Cannot_Load_Job_From_Repository
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/9b8ccfae2a344689.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/export-repository/impl/src/main/java/org/pentaho/di/job/entries/exportrepository/JobEntryExportRepository.java:223
password =
Encr.decryptPasswordOptionallyEncrypted( rep.getJobEntryAttributeString( id_jobentry, "password" ) );
targetfilename = rep.getJobEntryAttributeString( id_jobentry, "targetfilename" );
iffileexists = rep.getJobEntryAttributeString( id_jobentry, "iffileexists" );
export_type = rep.getJobEntryAttributeString( id_jobentry, "export_type" );
directoryPath = rep.getJobEntryAttributeString( id_jobentry, "directoryPath" );
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" );
createfolder = rep.getJobEntryAttributeBoolean( id_jobentry, "createfolder" );
newfolder = rep.getJobEntryAttributeBoolean( id_jobentry, "newfolder" );
add_result_filesname = rep.getJobEntryAttributeBoolean( id_jobentry, "add_result_filesname" );
nr_errors_less_than = rep.getJobEntryAttributeString( id_jobentry, "nr_errors_less_than" );
success_condition = rep.getJobEntryAttributeString( id_jobentry, "success_condition" );
} catch ( KettleException dbe ) {
throw new KettleException( BaseMessages.getString( PKG, "JobExportRepository.Meta.UnableLoadRep", ""
+ id_jobentry ), dbe );
}
}
public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_job ) throws KettleException {
try {
rep.saveJobEntryAttribute( id_job, getObjectId(), "repositoryname", repositoryname );
rep.saveJobEntryAttribute( id_job, getObjectId(), "username", username );
rep.saveJobEntryAttribute( id_job, getObjectId(), "password", Encr
.encryptPasswordIfNotUsingVariables( password ) );
rep.saveJobEntryAttribute( id_job, getObjectId(), "targetfilename", targetfilename );
rep.saveJobEntryAttribute( id_job, getObjectId(), "iffileexists", iffileexists );
rep.saveJobEntryAttribute( id_job, getObjectId(), "export_type", export_type );
rep.saveJobEntryAttribute( id_job, getObjectId(), "directoryPath", directoryPath );
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)