{"record":{"id":"5926698abcb9366d","repo":"pentaho/pentaho-kettle","slug":"normalisermeta-exception","errorCode":"NormaliserMeta.Exception.UnexpectedErrorReadingStepInfoFromRepository","errorMessage":"NormaliserMeta.Exception.UnexpectedErrorReadingStepInfoFromRepository","messagePattern":"NormaliserMeta\\.Exception\\.UnexpectedErrorReadingStepInfoFromRepository","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/trans/steps/normaliser/NormaliserMeta.java","lineNumber":283,"sourceCode":"\n  @Override\n  public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases )\n    throws KettleException {\n\n    try {\n      typeField = rep.getStepAttributeString( id_step, \"typefield\" );\n\n      int nrfields = rep.countNrStepAttributes( id_step, \"field_name\" );\n\n      allocate( nrfields );\n\n      for ( int i = 0; i < nrfields; i++ ) {\n        normaliserFields[i].setName( rep.getStepAttributeString( id_step, i, \"field_name\" ) );\n        normaliserFields[i].setValue( rep.getStepAttributeString( id_step, i, \"field_value\" ) );\n        normaliserFields[i].setNorm( rep.getStepAttributeString( id_step, i, \"field_norm\" ) );\n      }\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages.getString( PKG,\n          \"NormaliserMeta.Exception.UnexpectedErrorReadingStepInfoFromRepository\" ), e );\n    }\n  }\n\n  @Override\n  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step )\n    throws KettleException {\n    try {\n      rep.saveStepAttribute( id_transformation, id_step, \"typefield\", typeField );\n\n      for ( int i = 0; i < normaliserFields.length; i++ ) {\n        rep.saveStepAttribute( id_transformation, id_step, i, \"field_name\", normaliserFields[i].getName() );\n        rep.saveStepAttribute( id_transformation, id_step, i, \"field_value\", normaliserFields[i].getValue() );\n        rep.saveStepAttribute( id_transformation, id_step, i, \"field_norm\", normaliserFields[i].getNorm() );\n      }\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages.getString( PKG,\n          \"NormaliserMeta.Exception.UnableToSaveStepInfoToRepository\" ) + id_step, e );","sourceCodeStart":265,"sourceCodeEnd":301,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/trans/steps/normaliser/NormaliserMeta.java#L265-L301","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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."],"exampleFix":"null","handlingStrategy":"try-catch","validationCode":"// Before loading: verify repository reachability\nif (!rep.connect(...)) throw new IllegalStateException(\"Repository unreachable\");","typeGuard":null,"tryCatchPattern":"try { meta.readRep(rep, metaStore, stepId, databases); } catch (KettleException e) { log.error(\"Failed reading step \" + stepId + \" from repository: \" + e.getCause(), e); throw e; }","preventionTips":["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."],"tags":["kettle","repository","database","metadata-load"],"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"}