pentaho/pentaho-kettle · error · KettleException
Unable to load job entry of type 'create file' from the…
Error message
Unable to load job entry of type 'create file' from the repository for id_jobentry=${id_jobentry} What it means
JobEntryCreateFile.loadRep throws this KettleException when loading the 'create file' job entry's attributes from the Pentaho repository fails for the given id_jobentry. It wraps KettleException (typically database errors) raised by rep.getJobEntryAttributeString/Boolean.
Solutions
- Check repository database connectivity and retry opening the job.
- Re-save the job entry in Spoon to recreate missing attribute rows.
- Verify repository schema version matches the Pentaho version (repair/upgrade repository).
- Inspect the chained cause for the underlying SQL error.
Defensive patterns
Strategy: try-catch
Validate before calling
if (id_jobentry == null || id_jobentry.getId() <= 0) throw new IllegalArgumentException("id_jobentry must be a saved object id");
if (!rep.isConnected() && !rep.connect()) throw new IllegalStateException("Repository DB unreachable"); Try / catch
try {
jobEntry.loadRep(rep, metaStore, id_jobentry, databases, slaveServers);
} catch (KettleException e) {
logError("Repo load failed for create-file entry " + id_jobentry + ": " + e.getCause(), e);
// reconnect and retry once, then apply defaults
} Prevention
- Confirm DB reachability before opening jobs from the repository
- Run repository repair after failed saves to remove partial rows
- Keep Pentaho client and repository schema versions in sync
- Restore missing rows by re-saving the job in Spoon
When it happens
Trigger: Calling loadRep when reading 'filename', 'fail_if_file_exists' or 'add_filename_result' attributes fails — repository connection error, missing R_JOBENTRY_ATTRIBUTE rows, or DB-level failure for that id_jobentry.
Common situations: Repository DB temporarily unreachable when opening a job; rows purged/corrupted in the repository; schema version mismatch after upgrading Pentaho; restored repository backup missing recent rows.
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
- GetSequenceMeta.Exception.UnableToReadStepInfo
- GetSequenceMeta.Exception.UnableToSaveStepInfo
- JobCopyFiles.Error.Exception.UnableLoadRep
- JobEntryCopyMoveResultFilenames.CanNotLoadFromRep
- JobMoveFiles.Error.Exception.UnableLoadRep
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/ee46eca1b751820b.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/job/entries/createfile/JobEntryCreateFile.java:114
super.loadXML( entrynode, databases, slaveServers );
filename = XMLHandler.getTagValue( entrynode, "filename" );
failIfFileExists = "Y".equalsIgnoreCase( XMLHandler.getTagValue( entrynode, "fail_if_file_exists" ) );
addfilenameresult = "Y".equalsIgnoreCase( XMLHandler.getTagValue( entrynode, "add_filename_result" ) );
} catch ( KettleXMLException xe ) {
throw new KettleXMLException( "Unable to load job entry of type 'create file' from XML node", xe );
}
}
public void loadRep( Repository rep, IMetaStore metaStore, ObjectId id_jobentry, List<DatabaseMeta> databases,
List<SlaveServer> slaveServers ) throws KettleException {
try {
filename = rep.getJobEntryAttributeString( id_jobentry, "filename" );
failIfFileExists = rep.getJobEntryAttributeBoolean( id_jobentry, "fail_if_file_exists" );
addfilenameresult = rep.getJobEntryAttributeBoolean( id_jobentry, "add_filename_result" );
} catch ( KettleException dbe ) {
throw new KettleException(
"Unable to load job entry of type 'create file' from the repository for id_jobentry=" + id_jobentry, dbe );
}
}
public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_job ) throws KettleException {
try {
rep.saveJobEntryAttribute( id_job, getObjectId(), "filename", filename );
rep.saveJobEntryAttribute( id_job, getObjectId(), "fail_if_file_exists", failIfFileExists );
rep.saveJobEntryAttribute( id_job, getObjectId(), "add_filename_result", addfilenameresult );
} catch ( KettleDatabaseException dbe ) {
throw new KettleException( "Unable to save job entry of type 'create file' to the repository for id_job="
+ id_job, dbe );
}
}
public void setFilename( String filename ) {
this.filename = filename;View on GitHub (pinned to f3058517a1)