{"record":{"id":"d05b4b3811f9377d","repo":"pentaho/pentaho-kettle","slug":"unexpected-error-reading-step-information-from-the-d05b4b","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":"engine/src/main/java/org/pentaho/di/trans/steps/uniquerowsbyhashset/UniqueRowsByHashSetMeta.java","lineNumber":200,"sourceCode":"    retval.append( \"      </fields>\" );\n\n    return retval.toString();\n  }\n\n  public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases ) throws KettleException {\n    try {\n      storeValues = rep.getStepAttributeBoolean( id_step, \"store_values\" );\n      rejectDuplicateRow = rep.getStepAttributeBoolean( id_step, \"reject_duplicate_row\" );\n      errorDescription = rep.getStepAttributeString( id_step, \"error_description\" );\n      int nrfields = rep.countNrStepAttributes( id_step, \"field_name\" );\n\n      allocate( nrfields );\n\n      for ( int i = 0; i < nrfields; i++ ) {\n        compareFields[i] = rep.getStepAttributeString( id_step, i, \"field_name\" );\n      }\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages.getString(\n        PKG, \"UniqueRowsByHashSetMeta.Exception.UnexpectedErrorReadingStepInfo\" ), e );\n    }\n  }\n\n  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step ) throws KettleException {\n    try {\n      rep.saveStepAttribute( id_transformation, id_step, \"store_values\", storeValues );\n      rep.saveStepAttribute( id_transformation, id_step, \"reject_duplicate_row\", rejectDuplicateRow );\n      rep.saveStepAttribute( id_transformation, id_step, \"error_description\", errorDescription );\n      for ( int i = 0; i < compareFields.length; i++ ) {\n        rep.saveStepAttribute( id_transformation, id_step, i, \"field_name\", compareFields[i] );\n      }\n    } catch ( KettleException e ) {\n      throw new KettleException( BaseMessages.getString(\n        PKG, \"UniqueRowsByHashSetMeta.Exception.UnableToSaveStepInfo\" ), e );\n    }\n  }\n","sourceCodeStart":182,"sourceCodeEnd":218,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/trans/steps/uniquerowsbyhashset/UniqueRowsByHashSetMeta.java#L182-L218","documentation":"UniqueRowsByHashSetMeta.readRep loads the step's configuration (compare field names plus settings like reject_duplicate_row) from a repository. Any exception from the repository layer is wrapped in a KettleException with this message, meaning stored step attributes could not be read.","triggerScenarios":"readRep (public) fails during rep.getStepAttributeString / attribute count retrieval (e.g. nrfields attribute unreadable, repository connection error) for the Unique rows (HashSet) step.","commonSituations":"Repository backend unreachable; step attribute rows written by an incompatible Kettle version; corrupt repository data for the step id.","solutions":["Check the cause exception and repository connectivity","Verify the repository schema/version matches your Kettle install","Re-save the step from Spoon to rewrite its attributes","Export to XML and load from file as a workaround"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// Java: confirm repository reachability before reading step attributes\nif ( !repository.isConnected() ) {\n  throw new IllegalStateException( \"Repository not connected before readRep\" );\n}","typeGuard":null,"tryCatchPattern":"try {\n  meta.readRep( repository, metaStore, idStep, databases );\n} catch ( KettleException e ) {\n  logError( \"Repository read of UniqueRowsByHashSet step failed: \" + e.getCause(), e );\n  // re-save step or use XML export\n}","preventionTips":["Check repository connectivity before loads","Sync repository schema with Kettle version","Re-save steps after version upgrades"],"tags":["kettle","repository","persistence","unique-rows-hashset"],"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"}