pentaho/pentaho-kettle · error · KettleException
JobEntryAbort.UnableToLoadFromRepo.Label
Error message
JobEntryAbort.UnableToLoadFromRepo.Label
What it means
JobEntryAbort.loadRep wraps KettleDatabaseException from reading the 'message' attribute from the repository into a KettleException keyed 'JobEntryAbort.UnableToLoadFromRepo.Label' with the job entry id. It means loading the abort entry's abort message from the repository database failed.
Solutions
- Check repository DB connectivity and reconnect
- Verify repository schema version/repair
- Read the wrapped KettleDatabaseException cause for the SQL error
- Re-save the job entry to recreate its repository attributes
Defensive patterns
Strategy: try-catch
Validate before calling
if ( !rep.isConnected() ) {
throw new ValidationException( "Repository not connected" );
} Try / catch
try {
jobMeta.loadFromRepository( rep, path, null );
} catch ( KettleException e ) {
if ( e.getCause() instanceof KettleDatabaseException ) {
logError( "Repository load failed for entry: " + e.getMessage(), e );
}
} Prevention
- Verify repository connectivity before loading jobs
- Repair/upgrade repository schema after version upgrades
- Back up repository attribute tables
- Watch cause chain for the underlying SQL error
When it happens
Trigger: loadRep during repository job load when r_jobentry_attribute lookup for 'message' throws — repository DB unreachable, missing schema objects, or corrupt attribute row.
Common situations: Repository database down; schema drift after version upgrade; stale/invalid repository connection in Spoon.
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.UnableToSaveToRepo.Label
- JobEntryAddResultFilenames.UnableToLoadFromRepo
- JobEntryConnectedToRepository.Meta.UnableToLoadFromRep
- JobEntryConnectedToRepository.Meta.UnableToSaveToRep
- JobEntryMailValidator.Meta.UnableToSaveToRep
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/4cb99bf3b17f1c2a.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/core/impl/src/main/java/org/pentaho/di/job/entries/abort/JobEntryAbort.java:94
return retval.toString();
}
public void loadXML( Node entrynode, List<DatabaseMeta> databases, List<SlaveServer> slaveServers,
Repository rep, IMetaStore metaStore ) throws KettleXMLException {
try {
super.loadXML( entrynode, databases, slaveServers );
messageAbort = XMLHandler.getTagValue( entrynode, "message" );
} catch ( Exception e ) {
throw new KettleXMLException( BaseMessages.getString( PKG, "JobEntryAbort.UnableToLoadFromXml.Label" ), e );
}
}
public void loadRep( Repository rep, IMetaStore metaStore, ObjectId id_jobentry, List<DatabaseMeta> databases,
List<SlaveServer> slaveServers ) throws KettleException {
try {
messageAbort = rep.getJobEntryAttributeString( id_jobentry, "message" );
} catch ( KettleDatabaseException dbe ) {
throw new KettleException( BaseMessages.getString( PKG, "JobEntryAbort.UnableToLoadFromRepo.Label", String
.valueOf( 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(), "message", messageAbort );
} catch ( KettleDatabaseException dbe ) {
throw new KettleException( BaseMessages.getString( PKG, "JobEntryAbort.UnableToSaveToRepo.Label", String
.valueOf( id_job ) ), dbe );
}
}
public boolean evaluate( Result result ) {
String Returnmessage = null;View on GitHub (pinned to f3058517a1)