{"record":{"id":"4cb99bf3b17f1c2a","repo":"pentaho/pentaho-kettle","slug":"jobentryabort-unabletoloadfromrepo-label","errorCode":null,"errorMessage":"JobEntryAbort.UnableToLoadFromRepo.Label","messagePattern":"JobEntryAbort\\.UnableToLoadFromRepo\\.Label","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/core/impl/src/main/java/org/pentaho/di/job/entries/abort/JobEntryAbort.java","lineNumber":94,"sourceCode":"    return retval.toString();\n  }\n\n  public void loadXML( Node entrynode, List<DatabaseMeta> databases, List<SlaveServer> slaveServers,\n    Repository rep, IMetaStore metaStore ) throws KettleXMLException {\n    try {\n      super.loadXML( entrynode, databases, slaveServers );\n      messageAbort = XMLHandler.getTagValue( entrynode, \"message\" );\n    } catch ( Exception e ) {\n      throw new KettleXMLException( BaseMessages.getString( PKG, \"JobEntryAbort.UnableToLoadFromXml.Label\" ), e );\n    }\n  }\n\n  public void loadRep( Repository rep, IMetaStore metaStore, ObjectId id_jobentry, List<DatabaseMeta> databases,\n    List<SlaveServer> slaveServers ) throws KettleException {\n    try {\n      messageAbort = rep.getJobEntryAttributeString( id_jobentry, \"message\" );\n    } catch ( KettleDatabaseException dbe ) {\n      throw new KettleException( BaseMessages.getString( PKG, \"JobEntryAbort.UnableToLoadFromRepo.Label\", String\n        .valueOf( id_jobentry ) ), dbe );\n    }\n  }\n\n  // Save the attributes of this job entry\n  //\n  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_job ) throws KettleException {\n    try {\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"message\", messageAbort );\n\n    } catch ( KettleDatabaseException dbe ) {\n      throw new KettleException( BaseMessages.getString( PKG, \"JobEntryAbort.UnableToSaveToRepo.Label\", String\n        .valueOf( id_job ) ), dbe );\n    }\n  }\n\n  public boolean evaluate( Result result ) {\n    String Returnmessage = null;","sourceCodeStart":76,"sourceCodeEnd":112,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/core/impl/src/main/java/org/pentaho/di/job/entries/abort/JobEntryAbort.java#L76-L112","documentation":"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.","triggerScenarios":"loadRep during repository job load when r_jobentry_attribute lookup for 'message' throws — repository DB unreachable, missing schema objects, or corrupt attribute row.","commonSituations":"Repository database down; schema drift after version upgrade; stale/invalid repository connection in Spoon.","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"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"if ( !rep.isConnected() ) {\n  throw new ValidationException( \"Repository not connected\" );\n}","typeGuard":null,"tryCatchPattern":"try {\n  jobMeta.loadFromRepository( rep, path, null );\n} catch ( KettleException e ) {\n  if ( e.getCause() instanceof KettleDatabaseException ) {\n    logError( \"Repository load failed for entry: \" + e.getMessage(), e );\n  }\n}","preventionTips":["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"],"tags":["repository","database","job-entry","persistence"],"backgroundTag":"database-query-failed","analyzedSha":"f3058517a153da500bf4551f46d79b91bf8ec552","analyzedAt":"2026-09-13T14:04:16.340Z","contentChangedAt":"2026-09-13T14:04:16.340Z","schemaVersion":2},"datasetVersion":"2026-09-20T23:17:15.980Z"}