pentaho/pentaho-kettle · error · KettleException
Unable to load job entry for type file exists from the…
Error message
Unable to load job entry for type file exists from the repository for id_jobentry=
What it means
Thrown by PaloCubeCreate.loadRep() when loading this job entry's settings from the repository fails with a KettleDatabaseException (or other KettleException), wrapped as 'Unable to load job entry for type file exists from the repository for id_jobentry=<id>'. Like its loadXML counterpart, 'file exists' is a stale copy-paste from another entry type; the real subject is the Palo Create cube entry.
Solutions
- Check repository database connectivity and the repository log for the underlying KettleDatabaseException cause
- Verify the r_jobentry_attribute rows for the given id_jobentry exist and are intact
- Run repository repair/upgrade tools if the schema is out of date after an upgrade
- Recreate the job entry and save it to the repository again
Example fix
// diagnosis: inspect cause // before: loadRep fails with wrapped dbe // after: fix repository (e.g. restore r_jobentry_attribute rows for id_jobentry) then reload
Defensive patterns
Strategy: try-catch
Validate before calling
// Verify the entry exists and has attributes before loadRep:
if ( rep.getJobEntryAttributeString( id_jobentry, "cubeName" ) == null ) {
log.warn( "id_jobentry " + id_jobentry + " has no cubeName attribute; repository data may be missing" );
} Try / catch
try { entry.loadRep( rep, metaStore, id, databases, slaves ); } catch ( KettleException e ) { log.error( "Repository load failed for id_jobentry=" + id, e ); throw e; } Prevention
- Back up the repository database regularly
- Run repository upgrade scripts after PDI upgrades
- Watch repository connectivity and reconnection settings
When it happens
Trigger: loadRep called with an id_jobentry whose attributes (connection, cubeName, dimensionname entries) cannot be read: repository tables corrupted/missing, connection dropped mid-load, or repository permissions issues.
Common situations: Repository database connectivity problems; repository schema out of sync after a PDI upgrade; deleted job entry rows referenced elsewhere; restoring a partial repository backup.
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
- Unable to load job entry for type file exists from the…
- Unable to load file exists job entry from XML node
- Unable to load file exists job entry from XML node
- Unable to load job entry of type 'Msgbox Info' from the…
- Unable to save job entry of type 'Msgbox Info' to the…
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/f8502edc5ec93848.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/palo/core/src/main/java/org/pentaho/di/job/entries/palo/JobEntryCubeCreate/PaloCubeCreate.java:130
throw new KettleXMLException( "Unable to load file exists 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 {
this.databaseMeta =
rep.loadDatabaseMetaFromJobEntryAttribute( id_jobentry, "connection", "id_database", databases );
this.setCubeName( rep.getStepAttributeString( id_jobentry, "cubeName" ) );
int nrFields = rep.countNrStepAttributes( id_jobentry, "dimensionname" );
for ( int i = 0; i < nrFields; i++ ) {
String dimensionName = rep.getStepAttributeString( id_jobentry, i, "dimensionname" );
this.dimensionNames.add( dimensionName );
}
} catch ( KettleException dbe ) {
throw new KettleException( "Unable to load job entry for type file exists from the repository for id_jobentry="
+ id_jobentry, dbe );
}
}
public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_job ) throws KettleException {
try {
rep.saveDatabaseMetaJobEntryAttribute( id_job, getObjectId(), "connection", "id_database", databaseMeta );
rep.saveJobEntryAttribute( id_job, getObjectId(), "cubeName", this.getCubeName() );
for ( int i = 0; i < this.dimensionNames.size(); i++ ) {
rep.saveJobEntryAttribute( id_job, getObjectId(), i, "dimensionname", this.dimensionNames.get( i ) );
}
} catch ( KettleDatabaseException dbe ) {
throw new KettleException(
"unable to save jobentry of type 'file exists' to the repository for id_job=" + id_job, dbe );
}
}
View on GitHub (pinned to f3058517a1)