{"record":{"id":"e89a1028d4c80243","repo":"pentaho/pentaho-kettle","slug":"unable-to-load-base-job-entry-information-from-the","errorCode":null,"errorMessage":"Unable to load base job entry information from the repository for id_jobentry=id_jobentry","messagePattern":"Unable to load base job entry information from the repository for id_jobentry=id_jobentry","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/repository/kdr/delegates/KettleDatabaseRepositoryJobEntryDelegate.java","lineNumber":345,"sourceCode":"    return retval;\n  }\n\n  public void loadJobEntryBase( JobEntryBase jobEntryBase, ObjectId id_jobentry, List<DatabaseMeta> databases,\n    List<SlaveServer> slaveServers ) throws KettleException {\n    try {\n      RowMetaAndData r = getJobEntry( id_jobentry );\n      if ( r != null ) {\n        jobEntryBase.setName( r.getString( \"NAME\", null ) );\n\n        jobEntryBase.setDescription( r.getString( \"DESCRIPTION\", null ) );\n        long id_jobentry_type = r.getInteger( \"ID_JOBENTRY_TYPE\", 0 );\n        RowMetaAndData jetrow = getJobEntryType( new LongObjectId( id_jobentry_type ) );\n        if ( jetrow != null ) {\n          jobEntryBase.setPluginId( jetrow.getString( \"CODE\", null ) );\n        }\n      }\n    } catch ( KettleDatabaseException dbe ) {\n      throw new KettleException( \"Unable to load base job entry information from the repository for id_jobentry=\"\n        + id_jobentry, dbe );\n    }\n  }\n\n  private void saveAttributesMap( ObjectId jobId, ObjectId entryId, Map<String, Map<String, String>> attributesMap ) throws KettleException {\n    for ( final Map.Entry<String, Map<String, String>> attributesEntry : attributesMap.entrySet() ) {\n      Map<String, String> attributes = attributesEntry.getValue();\n      String groupName = attributesEntry.getKey();\n      for ( final Map.Entry<String, String> entry : attributes.entrySet() ) {\n        final String value = entry.getValue();\n        final String key = entry.getKey();\n        if ( key != null && value != null ) {\n          repository.connectionDelegate.insertJobEntryAttribute( jobId, entryId, 0, JOBENTRY_ATTRIBUTE_PREFIX\n            + groupName + '\\t' + value, 0, value );\n        }\n      }\n    }\n  }","sourceCodeStart":327,"sourceCodeEnd":363,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/repository/kdr/delegates/KettleDatabaseRepositoryJobEntryDelegate.java#L327-L363","documentation":"Loading the base job entry record (R_JOBENTRY) from the database repository hit a KettleDatabaseException, so the base attributes of the job entry could not be populated; it is rethrown as a KettleException including id_jobentry.","triggerScenarios":"Called from loadJobEntryCopy; the SELECT on R_JOBENTRY (and related R_JOBENTRY_TYPE lookup) fails due to connection problems, missing table, or a corrupt row for id_jobentry.","commonSituations":"Repository schema partially migrated; R_JOBENTRY row deleted while R_JOBENTRY_COPY still references it plus a DB-level error; transient JDBC failure; wrong repository database.","solutions":["Check the wrapped KettleDatabaseException cause to identify the actual SQL/JDBC failure and fix the database issue","Verify the R_JOBENTRY row for id_jobentry exists and R_JOBENTRY_TYPE has the referenced type row","Re-save or re-import the job to rebuild orphaned entry rows","Validate repository schema version matches your Kettle/PDI version"],"exampleFix":"// defensive load: surface cause and id\ntry {\n  JobEntryCopy c = repository.jobEntryDelegate.loadJobEntryCopy(jobId, copyId, jobMeta);\n} catch (KettleException e) {\n  Throwable root = e; while (root.getCause() != null) root = root.getCause();\n  throw new KettleException(\"Failed loading job entry (check R_JOBENTRY schema/data): \" + root.getMessage(), e);\n}","handlingStrategy":"try-catch","validationCode":"null","typeGuard":"null","tryCatchPattern":"try { ... } catch (KettleException e) {\n  Throwable root = e; while (root.getCause() != null) root = root.getCause();\n  logError(\"Base job entry load failed for id=\" + entryId + \": \" + root.getMessage(), e);\n}","preventionTips":["Run repository upgrade scripts when upgrading PDI","Avoid orphaning R_JOBENTRY rows when deleting job entries","Monitor DB connectivity during large job loads"],"tags":["kettle","repository","database","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"}