pentaho/pentaho-kettle · error · KettleException

Unexpected error reading step information from the…

Error message

Unexpected error reading step information from the repository

What it means

KettleException thrown by PaloCellOutputMeta.readRep when reading the step's saved attributes from the Pentaho Repository fails. Any exception raised by Repository.getStepAttributeString/getStepAttributeInteger calls (connection problems, repository schema issues) is wrapped in this generic message.

Solutions

  1. Check repository connectivity and re-open the transformation; retry after fixing the underlying repository exception (see cause in log).
  2. Inspect the R_STEP_ATTRIBUTE table for rows belonging to this step id; delete orphaned/corrupt rows and re-save the step.
  3. Recreate the Palo Cell Output step in Spoon against the repository and re-save.
  4. Verify repository and Pentaho versions match; run repository upgrade scripts if the schema is out of date.
Defensive patterns

Strategy: try-catch

Validate before calling

// Verify repository reachability and attributes before loading
if (!rep.connect().equals("OK")) { /* abort */ }
String val = rep.getStepAttributeString(idStep, "measurefieldname");
if (val == null) log.warn("step " + idStep + " missing measurefieldname attribute");

Try / catch

try {
  meta.readRep(rep, metaStore, idStep, databases);
} catch (KettleException e) {
  log.error("Repository read failed for step: " + e.getCause(), e);
  // re-save step from Spoon to rebuild attributes
}

Prevention

When it happens

Trigger: Loading a transformation from the repository where the KETTLE_STEP_ATTRIBUTE rows for this step are missing/corrupt, or the repository connection fails mid-read while fetching 'dimensionname', 'measurefieldname', 'measurefieldtype' attributes.

Common situations: Repository database partially migrated/upgraded so step attribute rows are stale; repository connection drops while opening a transformation; manually deleting repository rows; restoring a repository backup with schema mismatch.

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/62309f6560eab936. Report an issue: GitHub.

Appendix: source

Thrown at plugins/palo/core/src/main/java/org/pentaho/di/trans/steps/palo/celloutput/PaloCellOutputMeta.java:253

      }

      int nrFields = rep.countNrStepAttributes( idStep, "dimensionname" );

      for ( int i = 0; i < nrFields; i++ ) {
        String dimensionName = rep.getStepAttributeString( idStep, i, "dimensionname" );
        String fieldName = rep.getStepAttributeString( idStep, i, "fieldname" );
        String fieldType = rep.getStepAttributeString( idStep, i, "fieldtype" );
        this.fields.add( new DimensionField( dimensionName, fieldName, fieldType ) );
      }

      String measureName = rep.getStepAttributeString( idStep, "measurename" );
      String measureFieldName = rep.getStepAttributeString( idStep, "measurefieldname" );
      String measureFieldType = rep.getStepAttributeString( idStep, "measurefieldtype" );
      this.measureField = new DimensionField( measureName, measureFieldName, measureFieldType );

      setDefault();
    } catch ( Exception e ) {
      throw new KettleException( "Unexpected error reading step information from the repository", e );
    }
  }

  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId idTransformation, ObjectId idStep )
    throws KettleException {
    try {
      rep.saveDatabaseMetaStepAttribute( idTransformation, idStep, "connection", databaseMeta );
      rep.saveStepAttribute( idTransformation, idStep, "cube", this.cube );
      rep.saveStepAttribute( idTransformation, idStep, "measuretype", this.measureType );
      rep.saveStepAttribute( idTransformation, idStep, "updateMode", this.updateMode );
      rep.saveStepAttribute( idTransformation, idStep, "splashMode", this.splashMode );
      rep.saveStepAttribute( idTransformation, idStep, "clearcube", this.clearCube );
      rep.saveStepAttribute( idTransformation, idStep, "preloadDimensionCache", this.preloadDimensionCache );
      rep.saveStepAttribute( idTransformation, idStep, "enableDimensionCache", this.enableDimensionCache );
      rep.saveStepAttribute( idTransformation, idStep, "commitSize", this.commitSize );

      rep.saveStepAttribute( idTransformation, idStep, "measurename", this.measureField.getDimensionName() );
      rep.saveStepAttribute( idTransformation, idStep, "measurefieldname", this.measureField.getFieldName() );

View on GitHub (pinned to f3058517a1)