{"record":{"id":"62309f6560eab936","repo":"pentaho/pentaho-kettle","slug":"unexpected-error-reading-step-information-from-the-62309f","errorCode":null,"errorMessage":"Unexpected error reading step information from the repository","messagePattern":"Unexpected error reading step information from the repository","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/palo/core/src/main/java/org/pentaho/di/trans/steps/palo/celloutput/PaloCellOutputMeta.java","lineNumber":253,"sourceCode":"      }\n\n      int nrFields = rep.countNrStepAttributes( idStep, \"dimensionname\" );\n\n      for ( int i = 0; i < nrFields; i++ ) {\n        String dimensionName = rep.getStepAttributeString( idStep, i, \"dimensionname\" );\n        String fieldName = rep.getStepAttributeString( idStep, i, \"fieldname\" );\n        String fieldType = rep.getStepAttributeString( idStep, i, \"fieldtype\" );\n        this.fields.add( new DimensionField( dimensionName, fieldName, fieldType ) );\n      }\n\n      String measureName = rep.getStepAttributeString( idStep, \"measurename\" );\n      String measureFieldName = rep.getStepAttributeString( idStep, \"measurefieldname\" );\n      String measureFieldType = rep.getStepAttributeString( idStep, \"measurefieldtype\" );\n      this.measureField = new DimensionField( measureName, measureFieldName, measureFieldType );\n\n      setDefault();\n    } catch ( Exception e ) {\n      throw new KettleException( \"Unexpected error reading step information from the repository\", e );\n    }\n  }\n\n  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId idTransformation, ObjectId idStep )\n    throws KettleException {\n    try {\n      rep.saveDatabaseMetaStepAttribute( idTransformation, idStep, \"connection\", databaseMeta );\n      rep.saveStepAttribute( idTransformation, idStep, \"cube\", this.cube );\n      rep.saveStepAttribute( idTransformation, idStep, \"measuretype\", this.measureType );\n      rep.saveStepAttribute( idTransformation, idStep, \"updateMode\", this.updateMode );\n      rep.saveStepAttribute( idTransformation, idStep, \"splashMode\", this.splashMode );\n      rep.saveStepAttribute( idTransformation, idStep, \"clearcube\", this.clearCube );\n      rep.saveStepAttribute( idTransformation, idStep, \"preloadDimensionCache\", this.preloadDimensionCache );\n      rep.saveStepAttribute( idTransformation, idStep, \"enableDimensionCache\", this.enableDimensionCache );\n      rep.saveStepAttribute( idTransformation, idStep, \"commitSize\", this.commitSize );\n\n      rep.saveStepAttribute( idTransformation, idStep, \"measurename\", this.measureField.getDimensionName() );\n      rep.saveStepAttribute( idTransformation, idStep, \"measurefieldname\", this.measureField.getFieldName() );","sourceCodeStart":235,"sourceCodeEnd":271,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/palo/core/src/main/java/org/pentaho/di/trans/steps/palo/celloutput/PaloCellOutputMeta.java#L235-L271","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","solutions":["Check repository connectivity and re-open the transformation; retry after fixing the underlying repository exception (see cause in log).","Inspect the R_STEP_ATTRIBUTE table for rows belonging to this step id; delete orphaned/corrupt rows and re-save the step.","Recreate the Palo Cell Output step in Spoon against the repository and re-save.","Verify repository and Pentaho versions match; run repository upgrade scripts if the schema is out of date."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// Verify repository reachability and attributes before loading\nif (!rep.connect().equals(\"OK\")) { /* abort */ }\nString val = rep.getStepAttributeString(idStep, \"measurefieldname\");\nif (val == null) log.warn(\"step \" + idStep + \" missing measurefieldname attribute\");","typeGuard":null,"tryCatchPattern":"try {\n  meta.readRep(rep, metaStore, idStep, databases);\n} catch (KettleException e) {\n  log.error(\"Repository read failed for step: \" + e.getCause(), e);\n  // re-save step from Spoon to rebuild attributes\n}","preventionTips":["Check repository DB health before opening transformations","Keep repository schema upgraded to match your Pentaho version","Avoid manual edits to R_STEP_ATTRIBUTE","Backup the repository before migrations"],"tags":["repository","persistence","palo","kettle"],"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"}