pentaho/pentaho-kettle · error · KettleException

CubeInputMeta.Exception.UnexpectedErrorWhileReadingStepInfo

CubeInputMeta.Exception.UnexpectedErrorWhileReadingStepInfo

Error message

CubeInputMeta.Exception.UnexpectedErrorWhileReadingStepInfo

What it means

CubeInputMeta.readRep loads the step configuration from a repository. Any exception while reading step attributes is wrapped in this KettleException indicating an unexpected error while reading step info from the repository.

Solutions

  1. Verify repository connection settings and that the repository database is reachable.
  2. Check the wrapped cause exception for the concrete repository error.
  3. Re-save the transformation in the repository to restore step attributes.
  4. Verify the step's id_step corresponds to an existing, complete step record.
Defensive patterns

Strategy: try-catch

Try / catch

try {
  meta.readRep( rep, metaStore, id_step, databases );
} catch ( KettleException e ) {
  logError( "Repository read failed for CubeInput step — check repository connectivity: " + e.getMessage(), e );
}

Prevention

When it happens

Trigger: readRep queries rep.getStepAttributeString/Integer/Boolean for the step's file name, limit, and addfilenameresult attributes and an exception is thrown (repository connectivity, missing step row, corrupt repository data).

Common situations: Repository database unreachable or dropped mid-load; step metadata rows deleted from the repository; version mismatch between client and repository schema.

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/4ea9763b9c535b06. Report an issue: GitHub.

Appendix: source

Thrown at plugins/core/impl/src/main/java/org/pentaho/di/trans/steps/cubeinput/CubeInputMeta.java:216

    retval.append( "    " ).append( XMLHandler.addTagValue( "addfilenameresult", addfilenameresult ) );

    return retval.toString();
  }

  @Override public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases )
    throws KettleException {
    try {
      filename = rep.getStepAttributeString( id_step, "file_name" );
      try {
        rowLimit = rep.getStepAttributeString( id_step, "limit" );
      } catch ( KettleException readOldAttributeType ) {
        // PDI-12897
        rowLimit = String.valueOf( rep.getStepAttributeInteger( id_step, "limit" ) );
      }
      addfilenameresult = rep.getStepAttributeBoolean( id_step, "addfilenameresult" );

    } catch ( Exception e ) {
      throw new KettleException( BaseMessages.getString(
        PKG, "CubeInputMeta.Exception.UnexpectedErrorWhileReadingStepInfo" ), e );
    }
  }

  @Override public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step )
    throws KettleException {
    try {
      rep.saveStepAttribute( id_transformation, id_step, "file_name", filename );
      rep.saveStepAttribute( id_transformation, id_step, "limit", rowLimit );
      rep.saveStepAttribute( id_transformation, id_step, "addfilenameresult", addfilenameresult );

    } catch ( KettleException e ) {
      throw new KettleException( BaseMessages.getString( PKG, "CubeInputMeta.Exception.UnableToSaveStepInfo" )
        + id_step, e );
    }
  }

  @Override public void check( List<CheckResultInterface> remarks, TransMeta transMeta, StepMeta stepMeta,

View on GitHub (pinned to f3058517a1)