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
- Verify the repository database is reachable and credentials are valid
- Check the repository schema is compatible with your PDI version (run the upgrade scripts if needed)
- Open the transformation from the repository in Spoon and re-save the step to rebuild the attribute rows
- 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
- Monitor repository database availability before scheduled runs
- Keep repository schema versions in sync with the PDI client
- Back up the repository database regularly
- Restrict direct manual edits to repository tables
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
- SalesforceDeleteMeta.Exception.ErrorSavingToRepository
- FuzzyMatchMeta.Exception.UnexpecteErrorReadingStepInfoFromRe…
- GetTableNamesMeta.Exception.UnableToSaveStepInfo
- GPBulkLoaderMeta.Exception.UnexpectedErrorReadingStepInfoFro…
- GPBulkLoaderMeta.Exception.UnexpectedErrorReadingStepInfoFromRepository
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)