pentaho/pentaho-kettle · error · KettleException
PGPEncryptStreamMeta.Exception.UnexpectedErrorReadingStepInf…
Error message
PGPEncryptStreamMeta.Exception.UnexpectedErrorReadingStepInfo
What it means
KettleException thrown by PGPEncryptStreamMeta.readRep when reading the step's attributes from the repository fails. Each rep.getStepAttributeString/Boolean call reads persisted settings for the step; any repository-level exception is wrapped with this message. It means the step metadata could not be loaded from the database repository.
Solutions
- Verify the repository database connection is healthy and retry loading the transformation.
- Check r_step_attribute rows for the step id and repair or re-create the step.
- Confirm repository schema matches the Pentaho version (run the repository upgrade scripts).
Example fix
// before: loading transformation against stale repository connection
TransMeta tm = new TransMeta(rep, "PGP transform"); // throws
// after: reconnect repository first
rep.connect("admin", "password");
TransMeta tm = new TransMeta(rep, "PGP transform"); Defensive patterns
Strategy: try-catch
Validate before calling
// Verify repository is reachable before loading if (!rep.isConnected()) rep.connect(user, pass); rep.findStepAttributeNames sanity: check the transformation exists via rep.getTransformationID(name)
Try / catch
try { meta.readRep(rep, metaStore, idStep, databases); } catch (KettleException e) { log.error("Repository read failed for step: " + e.getCause(), e); throw e; } Prevention
- Monitor repository DB health before batch loads
- Run repository schema upgrade scripts after PDI upgrades
- Back up r_step_attribute before manual repository edits
When it happens
Trigger: readRep is invoked when loading a transformation stored in a repository and the repository call throws (connection dropped, missing r_step_attribute rows, repository schema mismatch).
Common situations: Repository database down or network dropped mid-load; shared repository upgraded from older Pentaho version; corrupted r_step_attribute entries for the step.
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
- ElasticSearchBulkMeta.Exception.ErrorReadingRepository
- ElasticSearchBulkMeta.Exception.ErrorSavingToRepository
- GetTableNamesMeta.Exception.UnableToSaveStepInfo
- GetTableNamesMeta.Exception.UnexpectedErrorReadingStepInfo
- GPBulkLoaderMeta.Exception.UnexpectedErrorReadingStepInfoFro…
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/033000cb4b45042b.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/trans/steps/pgpencryptstream/PGPEncryptStreamMeta.java:245
streamfield = XMLHandler.getTagValue( stepnode, "streamfield" );
resultfieldname = XMLHandler.getTagValue( stepnode, "resultfieldname" );
} catch ( Exception e ) {
throw new KettleXMLException( BaseMessages.getString(
PKG, "PGPEncryptStreamMeta.Exception.UnableToReadStepInfo" ), e );
}
}
@Override
public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases ) throws KettleException {
try {
gpglocation = rep.getStepAttributeString( id_step, "gpglocation" );
keyname = rep.getStepAttributeString( id_step, "keyname" );
keynameInField = rep.getStepAttributeBoolean( id_step, "keynameInField" );
keynameFieldName = rep.getStepAttributeString( id_step, "keynameFieldName" );
streamfield = rep.getStepAttributeString( id_step, "streamfield" );
resultfieldname = rep.getStepAttributeString( id_step, "resultfieldname" );
} catch ( Exception e ) {
throw new KettleException( BaseMessages.getString(
PKG, "PGPEncryptStreamMeta.Exception.UnexpectedErrorReadingStepInfo" ), e );
}
}
@Override
public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step ) throws KettleException {
try {
rep.saveStepAttribute( id_transformation, id_step, "gpglocation", gpglocation );
rep.saveStepAttribute( id_transformation, id_step, "keyname", keyname );
rep.saveStepAttribute( id_transformation, id_step, "keynameInField", keynameInField );
rep.saveStepAttribute( id_transformation, id_step, "keynameFieldName", keynameFieldName );
rep.saveStepAttribute( id_transformation, id_step, "streamfield", streamfield );
rep.saveStepAttribute( id_transformation, id_step, "resultfieldname", resultfieldname );
} catch ( Exception e ) {
throw new KettleException( BaseMessages.getString(
PKG, "PGPEncryptStreamMeta.Exception.UnableToSaveStepInfo" )
+ id_step, e );
}View on GitHub (pinned to f3058517a1)