{"record":{"id":"4741ac2da6a695ac","repo":"pentaho/pentaho-kettle","slug":"unable-to-load-job-entry-of-type-create-file-from-the-4741ac","errorCode":null,"errorMessage":"Unable to load job entry of type 'create file' from the repository for id_jobentry=","messagePattern":"Unable to load job entry of type 'create file' from the repository for id_jobentry=","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/job/entries/writetofile/JobEntryWriteToFile.java","lineNumber":125,"sourceCode":"      createParentFolder = \"Y\".equalsIgnoreCase( XMLHandler.getTagValue( entrynode, \"createParentFolder\" ) );\n      appendFile = \"Y\".equalsIgnoreCase( XMLHandler.getTagValue( entrynode, \"appendFile\" ) );\n      content = XMLHandler.getTagValue( entrynode, \"content\" );\n      encoding = XMLHandler.getTagValue( entrynode, \"encoding\" );\n    } catch ( KettleXMLException xe ) {\n      throw new KettleXMLException( \"Unable to load job entry of type 'create file' from XML node\", xe );\n    }\n  }\n\n  public void loadRep( Repository rep, IMetaStore metaStore, ObjectId id_jobentry, List<DatabaseMeta> databases,\n    List<SlaveServer> slaveServers ) throws KettleException {\n    try {\n      filename = rep.getJobEntryAttributeString( id_jobentry, \"filename\" );\n      createParentFolder = rep.getJobEntryAttributeBoolean( id_jobentry, \"createParentFolder\" );\n      appendFile = rep.getJobEntryAttributeBoolean( id_jobentry, \"appendFile\" );\n      content = rep.getJobEntryAttributeString( id_jobentry, \"content\" );\n      encoding = rep.getJobEntryAttributeString( id_jobentry, \"encoding\" );\n    } catch ( KettleException dbe ) {\n      throw new KettleException(\n        \"Unable to load job entry of type 'create file' from the repository for id_jobentry=\" + id_jobentry, dbe );\n    }\n  }\n\n  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_job ) throws KettleException {\n    try {\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"filename\", filename );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"createParentFolder\", createParentFolder );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"appendFile\", appendFile );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"content\", content );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"encoding\", encoding );\n    } catch ( KettleDatabaseException dbe ) {\n      throw new KettleException( \"Unable to save job entry of type 'create file' to the repository for id_job=\"\n        + id_job, dbe );\n    }\n  }\n\n  public void setFilename( String filename ) {","sourceCodeStart":107,"sourceCodeEnd":143,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/job/entries/writetofile/JobEntryWriteToFile.java#L107-L143","documentation":"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.","triggerScenarios":"Calling loadRep when the repository cannot return the attribute rows for this entry — DB outage, missing rows, or repository API failure.","commonSituations":"Repository database problems; jobs partially migrated between repositories; schema drift across Pentaho versions.","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"],"exampleFix":"// before\nentry.loadRep(rep, metaStore, idJobentry, databases, slaveServers); // throws\n// after\ntry {\n  entry.loadRep(rep, metaStore, idJobentry, databases, slaveServers);\n} catch (KettleException e) {\n  logError(\"Cannot load write-to-file entry \" + idJobentry, e);\n}","handlingStrategy":"try-catch","validationCode":"if (rep == null || idJobentry == null) throw new IllegalArgumentException(\"repository and id_jobentry required\");","typeGuard":null,"tryCatchPattern":"try {\n  entry.loadRep(rep, metaStore, idJobentry, databases, slaveServers);\n} catch (KettleException e) {\n  logError(\"LoadRep failed for id=\" + idJobentry + \": \" + e.getCause(), e);\n}","preventionTips":["Check repository health before loading jobs","Avoid partial migrations that leave entries without attribute rows","Align repository schema with your Pentaho release"],"tags":["kettle","repository","job-entry"],"backgroundTag":"database-query-failed","analyzedSha":"f3058517a153da500bf4551f46d79b91bf8ec552","analyzedAt":"2026-09-13T14:04:16.340Z","contentChangedAt":"2026-09-13T14:04:16.340Z","schemaVersion":2},"datasetVersion":"2026-09-20T23:17:15.980Z"}