pentaho/pentaho-kettle · error · KettleException

SalesforceDeleteMeta.Exception.ErrorReadingRepository

Error message

SalesforceDeleteMeta.Exception.ErrorReadingRepository

What it means

SalesforceDeleteMeta.readRep loads the step's settings from a repository (database) and wraps any exception in a KettleException with this message. It means reading the step attributes (DeleteField, batchSize, rollbackAllChangesOnError) from the repository failed.

Solutions

  1. Verify the repository database is reachable and credentials are valid
  2. Check the repository schema is compatible with your PDI version (run the upgrade scripts if needed)
  3. Open the transformation from the repository in Spoon and re-save the step to rebuild the attribute rows
  4. Inspect the chained cause for the specific JDBC/repository error

Example fix

null
Defensive patterns

Strategy: try-catch

Validate before calling

// verify repository connectivity before loading
try (Connection c = repositoryDataSource.getConnection()) {
  if (!c.isValid(5)) { throw new IllegalStateException("Repository database unreachable"); }
}

Try / catch

try {
  transMeta.readRep(repository, metaStore, transId, null);
} catch (KettleException e) {
  if (e.getMessage().contains("ErrorReadingRepository")) {
    logError("Repository read failed for SalesforceDelete step; check DB connectivity/schema: " + e.getCause());
  }
  throw e;
}

Prevention

When it happens

Trigger: readRep catching an exception from repository access: database down, missing tables, corrupted step attribute rows, or repository connectivity problems.

Common situations: Repository database unavailable or credentials expired; repository schema version mismatch with the PDI client; step attributes row corrupted or deleted manually.

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

Appendix: source

Thrown at plugins/salesforce/core/src/main/java/org/pentaho/di/trans/steps/salesforcedelete/SalesforceDeleteMeta.java:169

    setBatchSize( "10" );
    setRollbackAllChangesOnError( false );
  }

  /* This function adds meta data to the rows being pushed out */
  @Override
  public void getFields( Bowl bowl, RowMetaInterface r, String name, RowMetaInterface[] info, StepMeta nextStep,
    VariableSpace space, Repository repository, IMetaStore metaStore ) throws KettleStepException {

  }

  public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases ) throws KettleException {
    super.readRep( rep, metaStore, id_step, databases );
    try {
      setDeleteField( rep.getStepAttributeString( id_step, "DeleteField" ) );
      setBatchSize( rep.getStepAttributeString( id_step, "batchSize" ) );
      setRollbackAllChangesOnError( rep.getStepAttributeBoolean( id_step, "rollbackAllChangesOnError" ) );
    } catch ( Exception e ) {
      throw new KettleException( BaseMessages.getString(
        PKG, "SalesforceDeleteMeta.Exception.ErrorReadingRepository" ), e );
    }
  }

  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step ) throws KettleException {
    super.saveRep( rep, metaStore, id_transformation, id_step );
    try {
      rep.saveStepAttribute( id_transformation, id_step, "batchSize", getBatchSize() );
      rep.saveStepAttribute( id_transformation, id_step, "DeleteField", getDeleteField() );
      rep.saveStepAttribute( id_transformation, id_step, "rollbackAllChangesOnError", isRollbackAllChangesOnError() );
    } catch ( Exception e ) {
      throw new KettleException( BaseMessages.getString(
        PKG, "SalesforceDeleteMeta.Exception.ErrorSavingToRepository", "" + id_step ), e );
    }
  }

  public void check( List<CheckResultInterface> remarks, TransMeta transMeta, StepMeta stepMeta,
    RowMetaInterface prev, String[] input, String[] output, RowMetaInterface info, VariableSpace space,

View on GitHub (pinned to f3058517a1)