{"record":{"id":"8a3a57b06a753b8c","repo":"pentaho/pentaho-kettle","slug":"error-0002-cannot-load-job-from-repository-8a3a57","errorCode":"ERROR_0002_Cannot_Load_Job_From_Repository","errorMessage":"JobEntryWebServiceAvailable.ERROR_0002_Cannot_Load_Job_From_Repository","messagePattern":"JobEntryWebServiceAvailable\\.ERROR_0002_Cannot_Load_Job_From_Repository","errorType":"error_code","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/job/entries/webserviceavailable/JobEntryWebServiceAvailable.java","lineNumber":100,"sourceCode":"    try {\n      super.loadXML( entrynode, databases, slaveServers );\n      url = XMLHandler.getTagValue( entrynode, \"url\" );\n      connectTimeOut = XMLHandler.getTagValue( entrynode, \"connectTimeOut\" );\n      readTimeOut = XMLHandler.getTagValue( entrynode, \"readTimeOut\" );\n    } catch ( KettleXMLException xe ) {\n      throw new KettleXMLException( BaseMessages.getString(\n        PKG, \"JobEntryWebServiceAvailable.ERROR_0001_Cannot_Load_Job_Entry_From_Xml_Node\" ), xe );\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      url = rep.getJobEntryAttributeString( id_jobentry, \"url\" );\n      connectTimeOut = rep.getJobEntryAttributeString( id_jobentry, \"connectTimeOut\" );\n      readTimeOut = rep.getJobEntryAttributeString( id_jobentry, \"readTimeOut\" );\n    } catch ( KettleException dbe ) {\n      throw new KettleException( BaseMessages.getString(\n        PKG, \"JobEntryWebServiceAvailable.ERROR_0002_Cannot_Load_Job_From_Repository\", \"\" + id_jobentry ), dbe );\n    }\n  }\n\n  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_job ) throws KettleException {\n    try {\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"url\", url );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"connectTimeOut\", connectTimeOut );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"readTimeOut\", readTimeOut );\n    } catch ( KettleDatabaseException dbe ) {\n      throw new KettleException( BaseMessages.getString(\n        PKG, \"JobEntryWebServiceAvailable.ERROR_0003_Cannot_Save_Job_Entry\", \"\" + id_job ), dbe );\n    }\n  }\n\n  public void setURL( String url ) {\n    this.url = url;\n  }","sourceCodeStart":82,"sourceCodeEnd":118,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/job/entries/webserviceavailable/JobEntryWebServiceAvailable.java#L82-L118","documentation":"KettleException (code ERROR_0002) thrown by JobEntryWebServiceAvailable.loadRep when reading url/connectTimeOut/readTimeOut attributes from the repository fails with a KettleException. It wraps the repository error and identifies the entry by id_jobentry. The entry's settings could not be restored.","triggerScenarios":"Calling loadRep when the repository cannot read R_JOBENTRY_ATTRIBUTE rows for this entry — DB outage, missing rows, or repository API error.","commonSituations":"Repository connectivity problems; entries deleted by another user mid-load; schema drift between Pentaho versions.","solutions":["Verify repository DB connectivity and schema","Check the attribute rows exist for id_jobentry and recreate the entry if missing","Retry after the repository recovers","Review the wrapped cause for the repository error detail"],"exampleFix":"// before\nentry.loadRep(rep, metaStore, idJobentry, databases, slaveServers); // throws\n// after\ntry {\n  entry.loadRep(rep, metaStore, idJobentry, databases, slaveServers);\n} catch (KettleException e) {\n  logError(\"Cannot load web-service-available entry \" + idJobentry, e);\n}","handlingStrategy":"try-catch","validationCode":"if (rep == null || idJobentry == null) throw new IllegalArgumentException(\"repository and id_jobentry required\");","typeGuard":null,"tryCatchPattern":"try {\n  entry.loadRep(rep, metaStore, idJobentry, databases, slaveServers);\n} catch (KettleException e) {\n  logError(\"LoadRep failed for id=\" + idJobentry + \": \" + e.getCause(), e);\n}","preventionTips":["Ensure repository DB is reachable before loading jobs","Avoid concurrent deletion of entries while jobs are loading","Keep repository schema aligned with the Pentaho version"],"tags":["kettle","repository","job-entry"],"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"}