{"record":{"id":"22b802ca139c1212","repo":"pentaho/pentaho-kettle","slug":"salesforcedeletemeta-exception-errorreadingrepository","errorCode":null,"errorMessage":"SalesforceDeleteMeta.Exception.ErrorReadingRepository","messagePattern":"SalesforceDeleteMeta\\.Exception\\.ErrorReadingRepository","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/salesforce/core/src/main/java/org/pentaho/di/trans/steps/salesforcedelete/SalesforceDeleteMeta.java","lineNumber":169,"sourceCode":"    setBatchSize( \"10\" );\n    setRollbackAllChangesOnError( false );\n  }\n\n  /* This function adds meta data to the rows being pushed out */\n  @Override\n  public void getFields( Bowl bowl, RowMetaInterface r, String name, RowMetaInterface[] info, StepMeta nextStep,\n    VariableSpace space, Repository repository, IMetaStore metaStore ) throws KettleStepException {\n\n  }\n\n  public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases ) throws KettleException {\n    super.readRep( rep, metaStore, id_step, databases );\n    try {\n      setDeleteField( rep.getStepAttributeString( id_step, \"DeleteField\" ) );\n      setBatchSize( rep.getStepAttributeString( id_step, \"batchSize\" ) );\n      setRollbackAllChangesOnError( rep.getStepAttributeBoolean( id_step, \"rollbackAllChangesOnError\" ) );\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages.getString(\n        PKG, \"SalesforceDeleteMeta.Exception.ErrorReadingRepository\" ), e );\n    }\n  }\n\n  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step ) throws KettleException {\n    super.saveRep( rep, metaStore, id_transformation, id_step );\n    try {\n      rep.saveStepAttribute( id_transformation, id_step, \"batchSize\", getBatchSize() );\n      rep.saveStepAttribute( id_transformation, id_step, \"DeleteField\", getDeleteField() );\n      rep.saveStepAttribute( id_transformation, id_step, \"rollbackAllChangesOnError\", isRollbackAllChangesOnError() );\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages.getString(\n        PKG, \"SalesforceDeleteMeta.Exception.ErrorSavingToRepository\", \"\" + id_step ), e );\n    }\n  }\n\n  public void check( List<CheckResultInterface> remarks, TransMeta transMeta, StepMeta stepMeta,\n    RowMetaInterface prev, String[] input, String[] output, RowMetaInterface info, VariableSpace space,","sourceCodeStart":151,"sourceCodeEnd":187,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/salesforce/core/src/main/java/org/pentaho/di/trans/steps/salesforcedelete/SalesforceDeleteMeta.java#L151-L187","documentation":"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.","triggerScenarios":"readRep catching an exception from repository access: database down, missing tables, corrupted step attribute rows, or repository connectivity problems.","commonSituations":"Repository database unavailable or credentials expired; repository schema version mismatch with the PDI client; step attributes row corrupted or deleted manually.","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"],"exampleFix":"null","handlingStrategy":"try-catch","validationCode":"// verify repository connectivity before loading\ntry (Connection c = repositoryDataSource.getConnection()) {\n  if (!c.isValid(5)) { throw new IllegalStateException(\"Repository database unreachable\"); }\n}","typeGuard":null,"tryCatchPattern":"try {\n  transMeta.readRep(repository, metaStore, transId, null);\n} catch (KettleException e) {\n  if (e.getMessage().contains(\"ErrorReadingRepository\")) {\n    logError(\"Repository read failed for SalesforceDelete step; check DB connectivity/schema: \" + e.getCause());\n  }\n  throw e;\n}","preventionTips":["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"],"tags":["repository","persistence","salesforce-delete","metadata"],"backgroundTag":"database-query-failed","analyzedSha":"f3058517a153da500bf4551f46d79b91bf8ec552","analyzedAt":"2026-09-13T14:04:16.340Z","contentChangedAt":"2026-09-13T14:04:16.340Z","schemaVersion":2},"datasetVersion":"2026-09-20T23:17:15.980Z"}