pentaho/pentaho-kettle · error · KettleException
Unable to load base job entry information from the…
Error message
Unable to load base job entry information from the repository for id_jobentry=id_jobentry
What it means
Loading the base job entry record (R_JOBENTRY) from the database repository hit a KettleDatabaseException, so the base attributes of the job entry could not be populated; it is rethrown as a KettleException including id_jobentry.
Solutions
- Check the wrapped KettleDatabaseException cause to identify the actual SQL/JDBC failure and fix the database issue
- Verify the R_JOBENTRY row for id_jobentry exists and R_JOBENTRY_TYPE has the referenced type row
- Re-save or re-import the job to rebuild orphaned entry rows
- Validate repository schema version matches your Kettle/PDI version
Example fix
// defensive load: surface cause and id
try {
JobEntryCopy c = repository.jobEntryDelegate.loadJobEntryCopy(jobId, copyId, jobMeta);
} catch (KettleException e) {
Throwable root = e; while (root.getCause() != null) root = root.getCause();
throw new KettleException("Failed loading job entry (check R_JOBENTRY schema/data): " + root.getMessage(), e);
} Defensive patterns
Strategy: try-catch
Validate before calling
null
Type guard
null
Try / catch
try { ... } catch (KettleException e) {
Throwable root = e; while (root.getCause() != null) root = root.getCause();
logError("Base job entry load failed for id=" + entryId + ": " + root.getMessage(), e);
} Prevention
- Run repository upgrade scripts when upgrading PDI
- Avoid orphaning R_JOBENTRY rows when deleting job entries
- Monitor DB connectivity during large job loads
When it happens
Trigger: Called from loadJobEntryCopy; the SELECT on R_JOBENTRY (and related R_JOBENTRY_TYPE lookup) fails due to connection problems, missing table, or a corrupt row for id_jobentry.
Common situations: Repository schema partially migrated; R_JOBENTRY row deleted while R_JOBENTRY_COPY still references it plus a DB-level error; transient JDBC failure; wrong repository database.
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
- JobEntryCheckFilesLocked.UnableToLoadFromRepo
- JobEntryCheckFilesLocked.UnableToSaveToRepo
- JobEntryColumnsExist.Meta.UnableLoadRep
- JobEntryColumnsExist.Meta.UnableSaveRep
- JobEntryEval.UnableToLoadFromRepo
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/e89a1028d4c80243.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/repository/kdr/delegates/KettleDatabaseRepositoryJobEntryDelegate.java:345
return retval;
}
public void loadJobEntryBase( JobEntryBase jobEntryBase, ObjectId id_jobentry, List<DatabaseMeta> databases,
List<SlaveServer> slaveServers ) throws KettleException {
try {
RowMetaAndData r = getJobEntry( id_jobentry );
if ( r != null ) {
jobEntryBase.setName( r.getString( "NAME", null ) );
jobEntryBase.setDescription( r.getString( "DESCRIPTION", null ) );
long id_jobentry_type = r.getInteger( "ID_JOBENTRY_TYPE", 0 );
RowMetaAndData jetrow = getJobEntryType( new LongObjectId( id_jobentry_type ) );
if ( jetrow != null ) {
jobEntryBase.setPluginId( jetrow.getString( "CODE", null ) );
}
}
} catch ( KettleDatabaseException dbe ) {
throw new KettleException( "Unable to load base job entry information from the repository for id_jobentry="
+ id_jobentry, dbe );
}
}
private void saveAttributesMap( ObjectId jobId, ObjectId entryId, Map<String, Map<String, String>> attributesMap ) throws KettleException {
for ( final Map.Entry<String, Map<String, String>> attributesEntry : attributesMap.entrySet() ) {
Map<String, String> attributes = attributesEntry.getValue();
String groupName = attributesEntry.getKey();
for ( final Map.Entry<String, String> entry : attributes.entrySet() ) {
final String value = entry.getValue();
final String key = entry.getKey();
if ( key != null && value != null ) {
repository.connectionDelegate.insertJobEntryAttribute( jobId, entryId, 0, JOBENTRY_ATTRIBUTE_PREFIX
+ groupName + '\t' + value, 0, value );
}
}
}
}View on GitHub (pinned to f3058517a1)