pentaho/pentaho-kettle · error · KettleException

ERROR_0002_Unable_To_Load_Job_From_Repository

ERROR_0002_Unable_To_Load_Job_From_Repository

Error message

JobEntryFileCompare.ERROR_0002_Unable_To_Load_Job_From_Repository

What it means

Thrown by JobEntryFileCompare.loadRep when reading this job entry's attributes (filename1, filename2, add_filename_result) from a repository fails. The original KettleException is wrapped with a localized message including the job entry ObjectId. It signals a repository-level problem, not a file problem.

Solutions

  1. Verify the repository database connection is healthy and retry loading the job
  2. Check r_jobentry_attribute rows exist for id_jobentry and contain filename1/filename2/add_filename_result
  3. Run the Kettle repository upgrade scripts if versions differ
  4. Re-save the job entry from Spoon to regenerate the attribute rows
Defensive patterns

Strategy: retry

Validate before calling

// Verify repository connectivity before loading
if (!rep.connect()) { throw new IllegalStateException("repository unavailable"); }

Try / catch

try {
    jobEntry.loadRep(rep, metaStore, id_jobentry, databases, slaveServers);
} catch (KettleException e) {
    logError("Repository load failed for entry " + id_jobentry + ": " + e.getMessage(), e);
    // reconnect and retry, or fall back to XML load
}

Prevention

When it happens

Trigger: Loading a job from a database repository where r_jobentry_attribute rows for this entry are missing/corrupt, the repository connection drops mid-load, or getJobEntryAttributeString/Boolean throws.

Common situations: Broken or stale repository database connection; repository schema version mismatch after a Kettle upgrade; manually deleted attribute rows.

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/5c103e0b6ba8254f. Report an issue: GitHub.

Appendix: source

Thrown at engine/src/main/java/org/pentaho/di/job/entries/filecompare/JobEntryFileCompare.java:120

    try {
      super.loadXML( entrynode, databases, slaveServers );
      filename1 = XMLHandler.getTagValue( entrynode, "filename1" );
      filename2 = XMLHandler.getTagValue( entrynode, "filename2" );
      addFilenameToResult = "Y".equalsIgnoreCase( XMLHandler.getTagValue( entrynode, "add_filename_result" ) );
    } catch ( KettleXMLException xe ) {
      throw new KettleXMLException( BaseMessages.getString(
        PKG, "JobEntryFileCompare.ERROR_0001_Unable_To_Load_From_Xml_Node" ), xe );
    }
  }

  public void loadRep( Repository rep, IMetaStore metaStore, ObjectId id_jobentry, List<DatabaseMeta> databases,
    List<SlaveServer> slaveServers ) throws KettleException {
    try {
      filename1 = rep.getJobEntryAttributeString( id_jobentry, "filename1" );
      filename2 = rep.getJobEntryAttributeString( id_jobentry, "filename2" );
      addFilenameToResult = rep.getJobEntryAttributeBoolean( id_jobentry, "add_filename_result" );
    } catch ( KettleException dbe ) {
      throw new KettleException( BaseMessages.getString(
        PKG, "JobEntryFileCompare.ERROR_0002_Unable_To_Load_Job_From_Repository", id_jobentry ), dbe );
    }
  }

  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_job ) throws KettleException {
    try {
      rep.saveJobEntryAttribute( id_job, getObjectId(), "filename1", filename1 );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "filename2", filename2 );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "add_filename_result", addFilenameToResult );
    } catch ( KettleDatabaseException dbe ) {
      throw new KettleException( BaseMessages.getString(
        PKG, "JobEntryFileCompare.ERROR_0003_Unable_To_Save_Job", id_job ), dbe );
    }
  }

  public String getRealFilename1() {
    return environmentSubstitute( getFilename1() );
  }

View on GitHub (pinned to f3058517a1)