pentaho/pentaho-kettle · error · KettleException

JobEntryConnectedToRepository.Meta.UnableToLoadFromRep

Error message

JobEntryConnectedToRepository.Meta.UnableToLoadFromRep

What it means

JobEntryConnectedToRepository.loadRep wraps KettleDatabaseException thrown while reading the job entry's attributes (isspecificrep, repname, isspecificuser, username) from a repository into a KettleException keyed 'JobEntryConnectedToRepository.Meta.UnableToLoadFromRep' plus the job entry id. It means repository loading of this job entry failed at the database level.

Solutions

  1. Check repository database connectivity and credentials
  2. Verify the repository schema is up to date (run repository upgrade/repair tools)
  3. Inspect the wrapped KettleDatabaseException cause for the SQL error
  4. Re-save the job entry to a working repository to recreate its attribute rows
Defensive patterns

Strategy: try-catch

Validate before calling

// before loading jobs, verify repository reachability
if ( !rep.connect( "user", "pass" ) ) {
  throw new ValidationException( "Repository not reachable" );
}

Try / catch

try {
  jobMeta.loadFromRepository( rep, path, null );
} catch ( KettleException e ) {
  Throwable c = e.getCause();
  if ( c instanceof KettleDatabaseException ) {
    logError( "Repository read failed: " + c.getMessage(), c );
  }
}

Prevention

When it happens

Trigger: loadRep called during job load from a repository when r_jobentry_attribute rows are unreadable — repository DB connection failure, missing table/columns, or a corrupt attribute row.

Common situations: Repository database down or migrated with schema drift; wrong repository credentials; loading a job saved in a newer Pentaho version into an older repository schema.

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

Appendix: source

Thrown at plugins/connected-to-repository/impl/src/main/java/org/pentaho/di/job/entries/connectedtorepository/JobEntryConnectedToRepository.java:139

      isspecificuser = "Y".equalsIgnoreCase( XMLHandler.getTagValue( entrynode, "isspecificuser" ) );
      username = XMLHandler.getTagValue( entrynode, "username" );

    } catch ( Exception e ) {
      throw new KettleXMLException( BaseMessages.getString(
        PKG, "JobEntryConnectedToRepository.Meta.UnableToLoadFromXML" ), e );
    }
  }

  public void loadRep( Repository rep, IMetaStore metaStore, ObjectId id_jobentry, List<DatabaseMeta> databases,
    List<SlaveServer> slaveServers ) throws KettleException {
    try {
      isspecificrep = rep.getJobEntryAttributeBoolean( id_jobentry, "isspecificrep" );
      repname = rep.getJobEntryAttributeString( id_jobentry, "repname" );
      isspecificuser = rep.getJobEntryAttributeBoolean( id_jobentry, "isspecificuser" );
      username = rep.getJobEntryAttributeString( id_jobentry, "username" );

    } catch ( KettleDatabaseException dbe ) {
      throw new KettleException( BaseMessages.getString(
        PKG, "JobEntryConnectedToRepository.Meta.UnableToLoadFromRep" )
        + id_jobentry, dbe );

    }
  }

  // Save the attributes of this job entry
  //
  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_job ) throws KettleException {
    try {
      rep.saveJobEntryAttribute( id_job, getObjectId(), "isspecificrep", isspecificrep );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "repname", repname );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "isspecificuser", isspecificuser );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "username", username );
    } catch ( KettleDatabaseException dbe ) {
      throw new KettleException( BaseMessages.getString(
        PKG, "JobEntryConnectedToRepository.Meta.UnableToSaveToRep" )
        + id_job, dbe );

View on GitHub (pinned to f3058517a1)