pentaho/pentaho-kettle · error · KettleException
JobEntryConnectedToRepository.Meta.UnableToLoadFromRep
Error message
JobEntryConnectedToRepository.Meta.UnableToLoadFromRep
What it means
JobEntryConnectedToRepository.loadRep wraps KettleDatabaseException thrown while reading the job entry's attributes (isspecificrep, repname, isspecificuser, username) from a repository into a KettleException keyed 'JobEntryConnectedToRepository.Meta.UnableToLoadFromRep' plus the job entry id. It means repository loading of this job entry failed at the database level.
Solutions
- Check repository database connectivity and credentials
- Verify the repository schema is up to date (run repository upgrade/repair tools)
- Inspect the wrapped KettleDatabaseException cause for the SQL error
- Re-save the job entry to a working repository to recreate its attribute rows
Defensive patterns
Strategy: try-catch
Validate before calling
// before loading jobs, verify repository reachability
if ( !rep.connect( "user", "pass" ) ) {
throw new ValidationException( "Repository not reachable" );
} Try / catch
try {
jobMeta.loadFromRepository( rep, path, null );
} catch ( KettleException e ) {
Throwable c = e.getCause();
if ( c instanceof KettleDatabaseException ) {
logError( "Repository read failed: " + c.getMessage(), c );
}
} Prevention
- Check repository connectivity before opening repository jobs
- Keep repository schema upgraded to match the client version
- Back up r_jobentry_attribute data
- Use a healthy shared repository connection
When it happens
Trigger: loadRep called during job load from a repository when r_jobentry_attribute rows are unreadable — repository DB connection failure, missing table/columns, or a corrupt attribute row.
Common situations: Repository database down or migrated with schema drift; wrong repository credentials; loading a job saved in a newer Pentaho version into an older repository schema.
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
- JobEntryAbort.UnableToLoadFromRepo.Label
- JobEntryAbort.UnableToSaveToRepo.Label
- JobEntryAddResultFilenames.UnableToLoadFromRepo
- JobEntryConnectedToRepository.Meta.UnableToSaveToRep
- JobEntryMailValidator.Meta.UnableToSaveToRep
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/b25221d4e9eabe5d.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/connected-to-repository/impl/src/main/java/org/pentaho/di/job/entries/connectedtorepository/JobEntryConnectedToRepository.java:139
isspecificuser = "Y".equalsIgnoreCase( XMLHandler.getTagValue( entrynode, "isspecificuser" ) );
username = XMLHandler.getTagValue( entrynode, "username" );
} catch ( Exception e ) {
throw new KettleXMLException( BaseMessages.getString(
PKG, "JobEntryConnectedToRepository.Meta.UnableToLoadFromXML" ), e );
}
}
public void loadRep( Repository rep, IMetaStore metaStore, ObjectId id_jobentry, List<DatabaseMeta> databases,
List<SlaveServer> slaveServers ) throws KettleException {
try {
isspecificrep = rep.getJobEntryAttributeBoolean( id_jobentry, "isspecificrep" );
repname = rep.getJobEntryAttributeString( id_jobentry, "repname" );
isspecificuser = rep.getJobEntryAttributeBoolean( id_jobentry, "isspecificuser" );
username = rep.getJobEntryAttributeString( id_jobentry, "username" );
} catch ( KettleDatabaseException dbe ) {
throw new KettleException( BaseMessages.getString(
PKG, "JobEntryConnectedToRepository.Meta.UnableToLoadFromRep" )
+ id_jobentry, dbe );
}
}
// Save the attributes of this job entry
//
public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_job ) throws KettleException {
try {
rep.saveJobEntryAttribute( id_job, getObjectId(), "isspecificrep", isspecificrep );
rep.saveJobEntryAttribute( id_job, getObjectId(), "repname", repname );
rep.saveJobEntryAttribute( id_job, getObjectId(), "isspecificuser", isspecificuser );
rep.saveJobEntryAttribute( id_job, getObjectId(), "username", username );
} catch ( KettleDatabaseException dbe ) {
throw new KettleException( BaseMessages.getString(
PKG, "JobEntryConnectedToRepository.Meta.UnableToSaveToRep" )
+ id_job, dbe );View on GitHub (pinned to f3058517a1)