{"record":{"id":"445c5c4d593326f0","repo":"pentaho/pentaho-kettle","slug":"unable-to-load-job-entry-for-type-file-exists-from-the","errorCode":null,"errorMessage":"Unable to load job entry for type file exists from the repository for id_jobentry=<id_jobentry>","messagePattern":"Unable to load job entry for type file exists from the repository for id_jobentry=<id_jobentry>","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/dummy/core/src/main/java/org/pentaho/di/pdi/jobentry/dummy/JobEntryDummy.java","lineNumber":122,"sourceCode":"      super.loadXML( entrynode, databases, slaveServers );\n      sourceDirectory = XMLHandler.getTagValue( entrynode, SOURCEDIRECTORY );\n      targetDirectory = XMLHandler.getTagValue( entrynode, TARGETDIRECTORY );\n      wildcard = XMLHandler.getTagValue( entrynode, WILDCARD );\n    } catch ( KettleXMLException xe ) {\n      throw new KettleXMLException( \"Unable to load file exists job entry from XML node\",\n          xe );\n    }\n  }\n\n  @Override\n  public void loadRep( Repository rep, ObjectId id_jobentry, List<DatabaseMeta> databases, List<SlaveServer> slaveServers ) throws KettleException {\n    try {\n      super.loadRep( rep, id_jobentry, databases, slaveServers );\n      sourceDirectory = rep.getJobEntryAttributeString( id_jobentry, SOURCEDIRECTORY );\n      targetDirectory = rep.getJobEntryAttributeString( id_jobentry, TARGETDIRECTORY );\n      wildcard = rep.getJobEntryAttributeString( id_jobentry, WILDCARD );\n    } catch ( KettleException dbe ) {\n      throw new KettleException(\n          \"Unable to load job entry for type file exists from the repository for id_jobentry=\"\n              + id_jobentry, dbe );\n    }\n  }\n\n  @Override\n  public void saveRep( Repository rep, ObjectId id_job ) throws KettleException {\n    try {\n      super.saveRep( rep, id_job );\n\n      rep.saveJobEntryAttribute( id_job, getObjectId(), SOURCEDIRECTORY, sourceDirectory );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), TARGETDIRECTORY, targetDirectory );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), WILDCARD, wildcard );\n    } catch ( KettleDatabaseException dbe ) {\n      throw new KettleException(\n          \"unable to save jobentry of type 'file exists' to the repository for id_job=\"\n              + id_job, dbe );\n    }","sourceCodeStart":104,"sourceCodeEnd":140,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/dummy/core/src/main/java/org/pentaho/di/pdi/jobentry/dummy/JobEntryDummy.java#L104-L140","documentation":"loadRep loads the File Exists job entry attributes (source/target directory, wildcard) from a Kettle repository. If any repository read throws a KettleException, it is wrapped with this message including the id_jobentry. It signals the repository could not deliver the stored job entry attributes.","triggerScenarios":"Calling loadRep with an id_jobentry whose attributes are missing/inaccessible, or when the repository connection fails during rep.getJobEntryAttributeString calls.","commonSituations":"Repository database unavailable or dropped tables; stale id_jobentry after repository migration; insufficient DB user permissions on repository tables.","solutions":["Verify the repository database connection and credentials","Check the repository table (R_JOBENTRY_ATTRIBUTE) contains rows for the given id_jobentry","Confirm DB user has SELECT rights on the repository schema","Inspect the wrapped cause (dbe) for the underlying SQL error"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// check repository reachability before loading\nif (!rep.connect(...)) throw new IllegalStateException(\"Repository unavailable\");","typeGuard":null,"tryCatchPattern":"try { jobEntry.loadRep(rep, idJobentry, databases, slaveServers); } catch (KettleException e) { logger.error(\"loadRep failed for id_jobentry=\" + idJobentry, e); }","preventionTips":["Monitor repository DB health before batch operations","Back up repository before migrations","Grant service accounts proper SELECT rights on repository tables"],"tags":["repository","database","pdi","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"}