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=
What it means
KettleException thrown by JobEntryWriteToFile.loadRep when reading the entry's attributes (filename, createParentFolder, appendFile, content, encoding) from the repository fails with a KettleException. The id_jobentry is appended to the message; the repository error is chained.
Solutions
- Verify repository DB connectivity
- Check R_JOBENTRY_ATTRIBUTE rows for the id_jobentry and recreate the entry if absent
- Retry once the repository is reachable
- Examine the chained cause for the repository error
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 write-to-file 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
- Check repository health before loading jobs
- Avoid partial migrations that leave entries without attribute rows
- Align repository schema with your Pentaho release
When it happens
Trigger: Calling loadRep when the repository cannot return the attribute rows for this entry — DB outage, missing rows, or repository API failure.
Common situations: Repository database problems; jobs partially migrated between repositories; schema drift across 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…
- ERROR_0002_Cannot_Load_Job_From_Repository
- JobEntryCheckFilesLocked.UnableToLoadFromRepo
- JobEntryCheckFilesLocked.UnableToSaveToRepo
- JobEntryColumnsExist.Meta.UnableLoadRep
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/4741ac2da6a695ac.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/job/entries/writetofile/JobEntryWriteToFile.java:125
createParentFolder = "Y".equalsIgnoreCase( XMLHandler.getTagValue( entrynode, "createParentFolder" ) );
appendFile = "Y".equalsIgnoreCase( XMLHandler.getTagValue( entrynode, "appendFile" ) );
content = XMLHandler.getTagValue( entrynode, "content" );
encoding = XMLHandler.getTagValue( entrynode, "encoding" );
} 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" );
createParentFolder = rep.getJobEntryAttributeBoolean( id_jobentry, "createParentFolder" );
appendFile = rep.getJobEntryAttributeBoolean( id_jobentry, "appendFile" );
content = rep.getJobEntryAttributeString( id_jobentry, "content" );
encoding = rep.getJobEntryAttributeString( id_jobentry, "encoding" );
} 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(), "createParentFolder", createParentFolder );
rep.saveJobEntryAttribute( id_job, getObjectId(), "appendFile", appendFile );
rep.saveJobEntryAttribute( id_job, getObjectId(), "content", content );
rep.saveJobEntryAttribute( id_job, getObjectId(), "encoding", encoding );
} 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 ) {View on GitHub (pinned to f3058517a1)