{"record":{"id":"0354e75e8099769b","repo":"pentaho/pentaho-kettle","slug":"unable-to-load-job-entry-of-type-table-exists-from-the","errorCode":null,"errorMessage":"Unable to load job entry of type 'table exists' from the repository for id_jobentry=","messagePattern":"Unable to load job entry of type 'table exists' from the repository for id_jobentry=","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/job/entries/mysqlbulkfile/JobEntryMysqlBulkFile.java","lineNumber":173,"sourceCode":"      tablename = rep.getJobEntryAttributeString( id_jobentry, \"tablename\" );\n      filename = rep.getJobEntryAttributeString( id_jobentry, \"filename\" );\n      separator = rep.getJobEntryAttributeString( id_jobentry, \"separator\" );\n      enclosed = rep.getJobEntryAttributeString( id_jobentry, \"enclosed\" );\n      lineterminated = rep.getJobEntryAttributeString( id_jobentry, \"lineterminated\" );\n      limitlines = rep.getJobEntryAttributeString( id_jobentry, \"limitlines\" );\n      listcolumn = rep.getJobEntryAttributeString( id_jobentry, \"listcolumn\" );\n      highpriority = rep.getJobEntryAttributeBoolean( id_jobentry, \"highpriority\" );\n      optionenclosed = rep.getJobEntryAttributeBoolean( id_jobentry, \"optionenclosed\" );\n\n      outdumpvalue = (int) rep.getJobEntryAttributeInteger( id_jobentry, \"outdumpvalue\" );\n\n      iffileexists = (int) rep.getJobEntryAttributeInteger( id_jobentry, \"iffileexists\" );\n\n      addfiletoresult = rep.getJobEntryAttributeBoolean( id_jobentry, \"addfiletoresult\" );\n\n      connection = rep.loadDatabaseMetaFromJobEntryAttribute( id_jobentry, \"connection\", \"id_database\", databases );\n    } catch ( KettleDatabaseException dbe ) {\n      throw new KettleException(\n        \"Unable to load job entry of type 'table exists' from the repository for id_jobentry=\" + id_jobentry,\n        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(), \"schemaname\", schemaname );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"tablename\", tablename );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"filename\", filename );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"separator\", separator );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"enclosed\", enclosed );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"lineterminated\", lineterminated );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"limitlines\", limitlines );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"listcolumn\", listcolumn );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"highpriority\", highpriority );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"optionenclosed\", optionenclosed );\n","sourceCodeStart":155,"sourceCodeEnd":191,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/job/entries/mysqlbulkfile/JobEntryMysqlBulkFile.java#L155-L191","documentation":"KettleException thrown by JobEntryMysqlBulkFile.loadRep() when reading this entry's attributes from the repository fails with a KettleDatabaseException, including resolving the stored connection via loadDatabaseMetaFromJobEntryAttribute. It means the repository cannot supply the saved definition of the entry.","triggerScenarios":"Loading the job from a repository when attribute reads (getJobEntryAttributeInteger for iffileexists, booleans, etc.) or loadDatabaseMetaFromJobEntryAttribute(id_jobentry, \"connection\", \"id_database\", databases) throws.","commonSituations":"Referenced database connection deleted from the repository; corrupted or partially saved attribute rows; repository DB unreachable or permission restricted.","solutions":["Read the wrapped KettleDatabaseException cause and fix the underlying repository query/connection problem.","Recreate the missing database connection so id_database resolves.","Run repository schema repair/upgrade to restore attribute rows.","Delete and recreate the job entry if its repository rows are corrupt."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// before load: verify attribute rows exist\nif ( rep.getJobEntryAttributeInteger( id_jobentry, \"iffileexists\" ) < 0 ) logWarning( \"attribute missing for job entry \" + id_jobentry );","typeGuard":null,"tryCatchPattern":"try { jobEntry.loadRep( rep, metaStore, idJobentry, databases, slaveServers ); } catch ( KettleException e ) { logError( \"Repository load failed: \" + e.getCause(), e ); }","preventionTips":["Recreate connections removed from the repository or update referencing jobs","Repair corrupted R_JOBENTRY_ATTRIBUTE rows","Check repository read permissions","Inspect cause chain, not just the top message"],"tags":["kettle","repository","database","job-entry","mysql"],"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"}