pentaho/pentaho-kettle · error · KettleException
Unexpected error reading step information from the…
Error message
Unexpected error reading step information from the repository
What it means
BlockUntilStepsFinishMeta.readRep loads the step's configured step names and copy numbers from the repository when a transformation is opened from a repository. Any exception while reading the per-row step attributes is wrapped in this KettleException.
Solutions
- Verify the repository (database or file) is reachable and the connection settings are correct.
- Check the Kettle repository schema version matches your Pentaho version (run the upgrade scripts if needed).
- Re-open and re-save the transformation to rebuild the step attributes, or recreate the step.
- Inspect the root cause (the wrapped exception 'e') for the underlying SQL/repository error.
Example fix
null
Defensive patterns
Strategy: try-catch
Try / catch
try {
TransMeta tm = new TransMeta(repository, directory, "name", null, null, null, false);
} catch (KettleException e) {
if (e.getMessage().contains("Unexpected error reading step information from the repository")) {
// check repository connectivity/schema, then retry
} else { throw e; }
} Prevention
- Verify repository connectivity before loading transformations
- Keep repository schema upgraded to the Pentaho version
- Check log root cause (wrapped exception) for SQL errors
- Re-save steps after plugin upgrades
When it happens
Trigger: readRep throws while looping nrsteps calling rep.getStepAttributeString(id_step,i,"step_name") / ("step_CopyNr") — repository connection failure, missing id_step, or attribute rows referencing a nonexistent row index.
Common situations: Repository database unavailable or schema mismatch after a Pentaho upgrade; step metadata in the repository saved by an incompatible plugin version; partial/corrupt repository records for the transformation.
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
- GetTableNamesMeta.Exception.UnexpectedErrorReadingStepInfo
- Unexpected error reading step information from the…
- Unexpected error reading step information from the…
- DatabaseJoinMeta.Exception.UnexpectedErrorReadingStepInfo
- ElasticSearchBulkMeta.Exception.ErrorReadingRepository
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/e2cc97faed24cb92.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/core/impl/src/main/java/org/pentaho/di/trans/steps/blockuntilstepsfinish/BlockUntilStepsFinishMeta.java:176
stepName[i] = "step" + i;
stepCopyNr[i] = "CopyNr" + i;
}
}
public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases )
throws KettleException {
try {
int nrsteps = rep.countNrStepAttributes( id_step, "step_name" );
allocate( nrsteps );
for ( int i = 0; i < nrsteps; i++ ) {
stepName[i] = rep.getStepAttributeString( id_step, i, "step_name" );
stepCopyNr[i] = rep.getStepAttributeString( id_step, i, "step_CopyNr" );
}
} catch ( Exception e ) {
throw new KettleException( "Unexpected error reading step information from the repository", e );
}
}
public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step )
throws KettleException {
try {
for ( int i = 0; i < stepName.length; i++ ) {
rep.saveStepAttribute( id_transformation, id_step, i, "step_name", stepName[i] );
rep.saveStepAttribute( id_transformation, id_step, i, "step_CopyNr", stepCopyNr[i] );
}
} catch ( Exception e ) {
throw new KettleException( "Unable to save step information to the repository for id_step=" + 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)