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

  1. Verify repository DB connectivity
  2. Check R_JOBENTRY_ATTRIBUTE rows for the id_jobentry and recreate the entry if absent
  3. Retry once the repository is reachable
  4. 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

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


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)