pentaho/pentaho-kettle · error · KettleException
ERROR_0002_Cannot_Load_Job_From_Repository
ERROR_0002_Cannot_Load_Job_From_Repository
Error message
JobEntryWebServiceAvailable.ERROR_0002_Cannot_Load_Job_From_Repository
What it means
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.
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
Example fix
// before
entry.loadRep(rep, metaStore, idJobentry, databases, slaveServers); // throws
// after
try {
entry.loadRep(rep, metaStore, idJobentry, databases, slaveServers);
} catch (KettleException e) {
logError("Cannot load web-service-available entry " + idJobentry, e);
} Defensive patterns
Strategy: try-catch
Validate before calling
if (rep == null || idJobentry == null) throw new IllegalArgumentException("repository and id_jobentry required"); Try / catch
try {
entry.loadRep(rep, metaStore, idJobentry, databases, slaveServers);
} catch (KettleException e) {
logError("LoadRep failed for id=" + idJobentry + ": " + e.getCause(), e);
} Prevention
- 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
When it happens
Trigger: Calling loadRep when the repository cannot read R_JOBENTRY_ATTRIBUTE rows for this entry — DB outage, missing rows, or repository API error.
Common situations: Repository connectivity problems; entries deleted by another user mid-load; schema drift between Pentaho versions.
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
- Could not execute specified in a repository since we're not…
- JobEntryCheckFilesLocked.UnableToLoadFromRepo
- JobEntryCheckFilesLocked.UnableToSaveToRepo
- JobEntryColumnsExist.Meta.UnableLoadRep
- JobEntryColumnsExist.Meta.UnableSaveRep
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/8a3a57b06a753b8c.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/job/entries/webserviceavailable/JobEntryWebServiceAvailable.java:100
try {
super.loadXML( entrynode, databases, slaveServers );
url = XMLHandler.getTagValue( entrynode, "url" );
connectTimeOut = XMLHandler.getTagValue( entrynode, "connectTimeOut" );
readTimeOut = XMLHandler.getTagValue( entrynode, "readTimeOut" );
} catch ( KettleXMLException xe ) {
throw new KettleXMLException( BaseMessages.getString(
PKG, "JobEntryWebServiceAvailable.ERROR_0001_Cannot_Load_Job_Entry_From_Xml_Node" ), xe );
}
}
public void loadRep( Repository rep, IMetaStore metaStore, ObjectId id_jobentry, List<DatabaseMeta> databases,
List<SlaveServer> slaveServers ) throws KettleException {
try {
url = rep.getJobEntryAttributeString( id_jobentry, "url" );
connectTimeOut = rep.getJobEntryAttributeString( id_jobentry, "connectTimeOut" );
readTimeOut = rep.getJobEntryAttributeString( id_jobentry, "readTimeOut" );
} catch ( KettleException dbe ) {
throw new KettleException( BaseMessages.getString(
PKG, "JobEntryWebServiceAvailable.ERROR_0002_Cannot_Load_Job_From_Repository", "" + id_jobentry ), dbe );
}
}
public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_job ) throws KettleException {
try {
rep.saveJobEntryAttribute( id_job, getObjectId(), "url", url );
rep.saveJobEntryAttribute( id_job, getObjectId(), "connectTimeOut", connectTimeOut );
rep.saveJobEntryAttribute( id_job, getObjectId(), "readTimeOut", readTimeOut );
} catch ( KettleDatabaseException dbe ) {
throw new KettleException( BaseMessages.getString(
PKG, "JobEntryWebServiceAvailable.ERROR_0003_Cannot_Save_Job_Entry", "" + id_job ), dbe );
}
}
public void setURL( String url ) {
this.url = url;
}View on GitHub (pinned to f3058517a1)