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
UniqueRowsByHashSetMeta.readRep loads the step's configuration (compare field names plus settings like reject_duplicate_row) from a repository. Any exception from the repository layer is wrapped in a KettleException with this message, meaning stored step attributes could not be read.
Solutions
- Check the cause exception and repository connectivity
- Verify the repository schema/version matches your Kettle install
- Re-save the step from Spoon to rewrite its attributes
- Export to XML and load from file as a workaround
Defensive patterns
Strategy: try-catch
Validate before calling
// Java: confirm repository reachability before reading step attributes
if ( !repository.isConnected() ) {
throw new IllegalStateException( "Repository not connected before readRep" );
} Try / catch
try {
meta.readRep( repository, metaStore, idStep, databases );
} catch ( KettleException e ) {
logError( "Repository read of UniqueRowsByHashSet step failed: " + e.getCause(), e );
// re-save step or use XML export
} Prevention
- Check repository connectivity before loads
- Sync repository schema with Kettle version
- Re-save steps after version upgrades
When it happens
Trigger: readRep (public) fails during rep.getStepAttributeString / attribute count retrieval (e.g. nrfields attribute unreadable, repository connection error) for the Unique rows (HashSet) step.
Common situations: Repository backend unreachable; step attribute rows written by an incompatible Kettle version; corrupt repository data for the step id.
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
- Unable to save step information to the repository
- AddSequenceMeta.Exception.UnableToSaveStepInfo
- ColumnExistsMeta.Exception.UnableToSaveStepInfo
- ColumnExistsMeta.Exception.UnexpectedErrorReadingStepInfo
- CreditCardValidatorMeta.Exception.UnableToSaveStepInfo
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/d05b4b3811f9377d.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/trans/steps/uniquerowsbyhashset/UniqueRowsByHashSetMeta.java:200
retval.append( " </fields>" );
return retval.toString();
}
public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases ) throws KettleException {
try {
storeValues = rep.getStepAttributeBoolean( id_step, "store_values" );
rejectDuplicateRow = rep.getStepAttributeBoolean( id_step, "reject_duplicate_row" );
errorDescription = rep.getStepAttributeString( id_step, "error_description" );
int nrfields = rep.countNrStepAttributes( id_step, "field_name" );
allocate( nrfields );
for ( int i = 0; i < nrfields; i++ ) {
compareFields[i] = rep.getStepAttributeString( id_step, i, "field_name" );
}
} catch ( Exception e ) {
throw new KettleException( BaseMessages.getString(
PKG, "UniqueRowsByHashSetMeta.Exception.UnexpectedErrorReadingStepInfo" ), e );
}
}
public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step ) throws KettleException {
try {
rep.saveStepAttribute( id_transformation, id_step, "store_values", storeValues );
rep.saveStepAttribute( id_transformation, id_step, "reject_duplicate_row", rejectDuplicateRow );
rep.saveStepAttribute( id_transformation, id_step, "error_description", errorDescription );
for ( int i = 0; i < compareFields.length; i++ ) {
rep.saveStepAttribute( id_transformation, id_step, i, "field_name", compareFields[i] );
}
} catch ( KettleException e ) {
throw new KettleException( BaseMessages.getString(
PKG, "UniqueRowsByHashSetMeta.Exception.UnableToSaveStepInfo" ), e );
}
}
View on GitHub (pinned to f3058517a1)