{"record":{"id":"fe25df9e5012d6f8","repo":"pentaho/pentaho-kettle","slug":"pentahoreportingoutputmeta-exception","errorCode":null,"errorMessage":"PentahoReportingOutputMeta.Exception.UnexpectedErrorInReadingStepInfo","messagePattern":"PentahoReportingOutputMeta\\.Exception\\.UnexpectedErrorInReadingStepInfo","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/pentaho-reporting/impl/src/main/java/org/pentaho/di/trans/steps/pentahoreporting/PentahoReportingOutputMeta.java","lineNumber":248,"sourceCode":"      }\n      inputFile = rep.getStepAttributeString( idStep, XML_TAG_INPUT_FILE );\n      outputFile = rep.getStepAttributeString( idStep, XML_TAG_OUTPUT_FILE );\n      useValuesFromFields = rep.getStepAttributeBoolean( idStep, 0, XML_TAG_USE_VALUES_FROM_FIELDS, true );\n      createParentFolder = rep.getStepAttributeBoolean( idStep, XML_TAG_CREATE_PARENT_FOLDER );\n      parameterFieldMap = new HashMap<String, String>();\n      int nrParameters = rep.countNrStepAttributes( idStep, XML_TAG_PARAMETER + \"_\" + XML_TAG_NAME );\n      for ( int i = 0; i < nrParameters; i++ ) {\n        String parameter = rep.getStepAttributeString( idStep, i, XML_TAG_PARAMETER + \"_\" + XML_TAG_NAME );\n        String fieldname = rep.getStepAttributeString( idStep, i, XML_TAG_PARAMETER + \"_\" + XML_TAG_FIELD );\n        if ( !Utils.isEmpty( parameter ) && !Utils.isEmpty( fieldname ) ) {\n          parameterFieldMap.put( parameter, fieldname );\n        }\n      }\n\n      outputProcessorType =\n        ProcessorType.getProcessorTypeByCode( rep.getStepAttributeString( idStep, XML_TAG_PROCESSOR_TYPE ) );\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages.getString(\n        PKG, \"PentahoReportingOutputMeta.Exception.UnexpectedErrorInReadingStepInfo\" ), e );\n    }\n  }\n\n  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId idTransformation, ObjectId idStep ) throws KettleException {\n    try {\n      rep.saveStepAttribute( idTransformation, idStep, XML_TAG_INPUT_FILE_FIELD, inputFileField );\n      rep.saveStepAttribute( idTransformation, idStep, XML_TAG_OUTPUT_FILE_FIELD, outputFileField );\n      rep.saveStepAttribute( idTransformation, idStep, XML_TAG_INPUT_FILE, inputFile );\n      rep.saveStepAttribute( idTransformation, idStep, XML_TAG_OUTPUT_FILE, outputFile );\n      rep.saveStepAttribute( idTransformation, idStep, XML_TAG_USE_VALUES_FROM_FIELDS, useValuesFromFields );\n      rep.saveStepAttribute( idTransformation, idStep, XML_TAG_CREATE_PARENT_FOLDER, createParentFolder );\n      List<String> pars = new ArrayList<String>( parameterFieldMap.keySet() );\n      Collections.sort( pars );\n      for ( int i = 0; i < pars.size(); i++ ) {\n        String parameter = pars.get( i );\n        String fieldname = parameterFieldMap.get( parameter );\n        rep.saveStepAttribute( idTransformation, idStep, i, XML_TAG_PARAMETER + \"_\" + XML_TAG_NAME, parameter );","sourceCodeStart":230,"sourceCodeEnd":266,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/pentaho-reporting/impl/src/main/java/org/pentaho/di/trans/steps/pentahoreporting/PentahoReportingOutputMeta.java#L230-L266","documentation":"PentahoReportingOutputMeta.readRep reads the step configuration from a repository; any Exception (bad attribute values, unknown processor type code, repository access problems) is wrapped in a KettleException with message PentahoReportingOutputMeta.Exception.UnexpectedErrorInReadingStepInfo. It parallels readData but for the repository storage backend.","triggerScenarios":"loadRep -> readRep(rep, idStep, ...); rep.getStepAttributeString returns a processor type code that ProcessorType.getProcessorTypeByCode cannot resolve, or the repository call itself throws (connection issue, missing step row).","commonSituations":"Step definition saved with an older plugin version using a processor code that no longer exists; repository database connectivity problems; step attributes manually deleted or corrupted in the repository tables.","solutions":["Check the 'Caused by' for the true repository or parsing error","Verify database/repository connectivity and that the step attributes (KTR/step id) exist in r_step_attribute","Re-save the step configuration in Spoon with a matching plugin version to rewrite valid attribute values","Align plugin versions between the machine that saved the transformation and the one loading it"],"exampleFix":"// before\n<processor_type>XLS_DOC</processor_type>\n// after (valid code)\n<processor_type>EXCEL</processor_type>","handlingStrategy":"try-catch","validationCode":"// verify repository reachability before loadRep\nif ( rep == null || !rep.isConnected() ) {\n  throw new KettleException( \"Repository not connected\" );\n}","typeGuard":null,"tryCatchPattern":"try {\n  meta.readRep( rep, metaStore, idStep, databases );\n} catch ( KettleException e ) {\n  logError( \"Cannot read reporting step from repository: \" + e.getMessage(), e );\n}","preventionTips":["Ensure repository user has read access to step attributes","Save and load transformations with matching plugin versions","Check repository connectivity before scheduled runs","Back up r_step_attribute rows before manual edits"],"tags":["kettle","repository","metadata"],"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"}