{"record":{"id":"38224f3219488e99","repo":"pentaho/pentaho-kettle","slug":"pgpdecryptstreammeta-exception","errorCode":null,"errorMessage":"PGPDecryptStreamMeta.Exception.UnexpectedErrorReadingStepInfo","messagePattern":"PGPDecryptStreamMeta\\.Exception\\.UnexpectedErrorReadingStepInfo","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/trans/steps/pgpdecryptstream/PGPDecryptStreamMeta.java","lineNumber":249,"sourceCode":"      passphraseFieldName = XMLHandler.getTagValue( stepnode, \"passphraseFieldName\" );\n    } catch ( Exception e ) {\n      throw new KettleXMLException( BaseMessages.getString(\n        PKG, \"PGPDecryptStreamMeta.Exception.UnableToReadStepInfo\" ), e );\n    }\n  }\n\n  @Override\n  public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases ) throws KettleException {\n    try {\n      gpglocation = rep.getStepAttributeString( id_step, \"gpglocation\" );\n      passhrase = Encr.decryptPasswordOptionallyEncrypted( rep.getStepAttributeString( id_step, \"passhrase\" ) );\n\n      streamfield = rep.getStepAttributeString( id_step, \"streamfield\" );\n      resultfieldname = rep.getStepAttributeString( id_step, \"resultfieldname\" );\n      passphraseFromField = rep.getStepAttributeBoolean( id_step, \"passphraseFromField\" );\n      passphraseFieldName = rep.getStepAttributeString( id_step, \"passphraseFieldName\" );\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages.getString(\n        PKG, \"PGPDecryptStreamMeta.Exception.UnexpectedErrorReadingStepInfo\" ), e );\n    }\n  }\n\n  @Override\n  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step ) throws KettleException {\n    try {\n      rep.saveStepAttribute( id_transformation, id_step, \"gpglocation\", gpglocation );\n      rep.saveStepAttribute( id_transformation, id_step, \"passhrase\", Encr\n        .encryptPasswordIfNotUsingVariables( passhrase ) );\n      rep.saveStepAttribute( id_transformation, id_step, \"streamfield\", streamfield );\n      rep.saveStepAttribute( id_transformation, id_step, \"resultfieldname\", resultfieldname );\n      rep.saveStepAttribute( id_transformation, id_step, \"passphraseFromField\", passphraseFromField );\n      rep.saveStepAttribute( id_transformation, id_step, \"passphraseFieldName\", passphraseFieldName );\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages.getString(\n        PKG, \"PGPDecryptStreamMeta.Exception.UnableToSaveStepInfo\" )\n        + id_step, e );","sourceCodeStart":231,"sourceCodeEnd":267,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/trans/steps/pgpdecryptstream/PGPDecryptStreamMeta.java#L231-L267","documentation":"PGPDecryptStreamMeta.readRep throws KettleException when reading step attributes from the Pentaho Repository fails unexpectedly. Any exception from rep.getStepAttributeString/Boolean while loading the step's saved settings is wrapped with this message.","triggerScenarios":"Calling readRep against a repository where the step attributes cannot be fetched — repository connection issues, missing/corrupt step record, or a repository API error.","commonSituations":"Database repository temporarily unavailable, step deleted by another user mid-load, repository schema version mismatch, permissions problems on the repository tables.","solutions":["Verify the repository connection is up and credentials are valid","Re-open the transformation in Spoon to reload from the repository","Check the repository tables (R_STEP_ATTRIBUTE) for the step's rows","Check the wrapped cause 'e' for the true repository error and address it"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// Check repository connectivity before loading\nif (rep.connect() == null || !rep.isConnected()) {\n  throw new IllegalStateException(\"Repository not connected\");\n}","typeGuard":null,"tryCatchPattern":"try { stepMeta.readRep(rep, metaStore, idStep, dbs); }\ncatch (KettleException e) {\n  if (e.getMessage().contains(\"UnexpectedErrorReadingStepInfo\")) {\n    log.error(\"Repository read failed for step \" + idStep + \": \" + e.getCause(), e);\n  } else { throw e; }\n}","preventionTips":["Verify repository connectivity and credentials before batch loads","Monitor repository DB health","Avoid concurrent deletion of steps while transformations load","Align repository schema version with PDI runtime"],"tags":["repository","kettle","persistence"],"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"}