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

  1. Inspect the chained cause exception (getCause()) to see the actual repository/database failure.
  2. Verify the repository is reachable and credentials are valid; test the connection.
  3. Check that id_step still exists in the repository (R_STEP_ATTRIBUTE rows for the step).
  4. 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

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


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)