pentaho/pentaho-kettle · error · KettleException

Unable to load job entry for type file exists from the…

Error message

Unable to load job entry for type file exists from the repository for id_jobentry=

What it means

Thrown by PaloCubeCreate.loadRep() when loading this job entry's settings from the repository fails with a KettleDatabaseException (or other KettleException), wrapped as 'Unable to load job entry for type file exists from the repository for id_jobentry=<id>'. Like its loadXML counterpart, 'file exists' is a stale copy-paste from another entry type; the real subject is the Palo Create cube entry.

Solutions

  1. Check repository database connectivity and the repository log for the underlying KettleDatabaseException cause
  2. Verify the r_jobentry_attribute rows for the given id_jobentry exist and are intact
  3. Run repository repair/upgrade tools if the schema is out of date after an upgrade
  4. Recreate the job entry and save it to the repository again

Example fix

// diagnosis: inspect cause
// before: loadRep fails with wrapped dbe
// after: fix repository (e.g. restore r_jobentry_attribute rows for id_jobentry) then reload
Defensive patterns

Strategy: try-catch

Validate before calling

// Verify the entry exists and has attributes before loadRep:
if ( rep.getJobEntryAttributeString( id_jobentry, "cubeName" ) == null ) {
  log.warn( "id_jobentry " + id_jobentry + " has no cubeName attribute; repository data may be missing" );
}

Try / catch

try { entry.loadRep( rep, metaStore, id, databases, slaves ); } catch ( KettleException e ) { log.error( "Repository load failed for id_jobentry=" + id, e ); throw e; }

Prevention

When it happens

Trigger: loadRep called with an id_jobentry whose attributes (connection, cubeName, dimensionname entries) cannot be read: repository tables corrupted/missing, connection dropped mid-load, or repository permissions issues.

Common situations: Repository database connectivity problems; repository schema out of sync after a PDI upgrade; deleted job entry rows referenced elsewhere; restoring a partial repository backup.

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

Appendix: source

Thrown at plugins/palo/core/src/main/java/org/pentaho/di/job/entries/palo/JobEntryCubeCreate/PaloCubeCreate.java:130

      throw new KettleXMLException( "Unable to load file exists job entry from XML node", xe );
    }
  }

  public void loadRep( Repository rep, IMetaStore metaStore, ObjectId id_jobentry, List<DatabaseMeta> databases,
      List<SlaveServer> slaveServers ) throws KettleException {
    try {
      this.databaseMeta =
          rep.loadDatabaseMetaFromJobEntryAttribute( id_jobentry, "connection", "id_database", databases );
      this.setCubeName( rep.getStepAttributeString( id_jobentry, "cubeName" ) );

      int nrFields = rep.countNrStepAttributes( id_jobentry, "dimensionname" );

      for ( int i = 0; i < nrFields; i++ ) {
        String dimensionName = rep.getStepAttributeString( id_jobentry, i, "dimensionname" );
        this.dimensionNames.add( dimensionName );
      }
    } catch ( KettleException dbe ) {
      throw new KettleException( "Unable to load job entry for type file exists from the repository for id_jobentry="
          + id_jobentry, dbe );
    }
  }

  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_job ) throws KettleException {
    try {
      rep.saveDatabaseMetaJobEntryAttribute( id_job, getObjectId(), "connection", "id_database", databaseMeta );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "cubeName", this.getCubeName() );

      for ( int i = 0; i < this.dimensionNames.size(); i++ ) {
        rep.saveJobEntryAttribute( id_job, getObjectId(), i, "dimensionname", this.dimensionNames.get( i ) );
      }
    } catch ( KettleDatabaseException dbe ) {
      throw new KettleException(
          "unable to save jobentry of type 'file exists' to the repository for id_job=" + id_job, dbe );
    }
  }

View on GitHub (pinned to f3058517a1)