pentaho/pentaho-kettle · error · KettleException
NormaliserMeta.Exception.UnexpectedErrorReadingStepInfoFromRepository
NormaliserMeta.Exception.UnexpectedErrorReadingStepInfoFromRepository
Error message
NormaliserMeta.Exception.UnexpectedErrorReadingStepInfoFromRepository
What it means
NormaliserMeta.readRep() loads the Normaliser step's field definitions from the Pentaho repository. Any exception raised while reading step attributes (e.g. repository/database failures) is wrapped in a KettleException with this generic 'UnexpectedErrorReadingStepInfoFromRepository' message, chaining the original cause.
Solutions
- Inspect the chained cause exception (getCause()) to see the actual repository/database failure.
- Verify the repository is reachable and credentials are valid; test the connection.
- Check that id_step still exists in the repository (R_STEP_ATTRIBUTE rows for the step).
- Reload/re-save the transformation metadata, or re-import the step definition.
Example fix
null
Defensive patterns
Strategy: try-catch
Validate before calling
// Before loading: verify repository reachability
if (!rep.connect(...)) throw new IllegalStateException("Repository unreachable"); Try / catch
try { meta.readRep(rep, metaStore, stepId, databases); } catch (KettleException e) { log.error("Failed reading step " + stepId + " from repository: " + e.getCause(), e); throw e; } Prevention
- Check repository connectivity before loading transformations programmatically.
- Avoid deleting/re-creating steps while other sessions load them.
- Keep repository schema aligned with your Pentaho version.
- Log getCause() to surface the true database error.
When it happens
Trigger: Calling readRep(rep, metaStore, id_step) when the underlying rep.getStepAttributeString(...) calls fail — repository connection loss, invalid id_step, database error, or unexpected attribute data.
Common situations: Repository database is down or network is interrupted while loading a transformation; step metadata was corrupted or deleted in the repository (stale ObjectId); wrong repository version/schema; concurrent modification of 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
- AppendMeta.Exception.UnexpectedErrorReadingStepInfo
- CombinationLookupMeta.Exception.UnexpectedErrorWhileReadingS…
- NullIfMeta.Exception.UnexpectedErrorReadingStepInfoFromRepos…
- AccessInputMeta.Exception.ErrorReadingRepository
- AddSequenceMeta.Exception.UnableToReadStepInfo
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/5926698abcb9366d.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/trans/steps/normaliser/NormaliserMeta.java:283
@Override
public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases )
throws KettleException {
try {
typeField = rep.getStepAttributeString( id_step, "typefield" );
int nrfields = rep.countNrStepAttributes( id_step, "field_name" );
allocate( nrfields );
for ( int i = 0; i < nrfields; i++ ) {
normaliserFields[i].setName( rep.getStepAttributeString( id_step, i, "field_name" ) );
normaliserFields[i].setValue( rep.getStepAttributeString( id_step, i, "field_value" ) );
normaliserFields[i].setNorm( rep.getStepAttributeString( id_step, i, "field_norm" ) );
}
} catch ( Exception e ) {
throw new KettleException( BaseMessages.getString( PKG,
"NormaliserMeta.Exception.UnexpectedErrorReadingStepInfoFromRepository" ), e );
}
}
@Override
public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step )
throws KettleException {
try {
rep.saveStepAttribute( id_transformation, id_step, "typefield", typeField );
for ( int i = 0; i < normaliserFields.length; i++ ) {
rep.saveStepAttribute( id_transformation, id_step, i, "field_name", normaliserFields[i].getName() );
rep.saveStepAttribute( id_transformation, id_step, i, "field_value", normaliserFields[i].getValue() );
rep.saveStepAttribute( id_transformation, id_step, i, "field_norm", normaliserFields[i].getNorm() );
}
} catch ( Exception e ) {
throw new KettleException( BaseMessages.getString( PKG,
"NormaliserMeta.Exception.UnableToSaveStepInfoToRepository" ) + id_step, e );View on GitHub (pinned to f3058517a1)