{"record":{"id":"4cb14178d0647420","repo":"pentaho/pentaho-kettle","slug":"getsequencemeta-exception-unabletoreadstepinfo","errorCode":null,"errorMessage":"GetSequenceMeta.Exception.UnableToReadStepInfo","messagePattern":"GetSequenceMeta\\.Exception\\.UnableToReadStepInfo","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/trans/steps/getslavesequence/GetSlaveSequenceMeta.java","lineNumber":116,"sourceCode":"    StringBuilder retval = new StringBuilder( 300 );\n\n    retval.append( \"      \" ).append( XMLHandler.addTagValue( \"valuename\", valuename ) );\n    retval.append( \"      \" ).append( XMLHandler.addTagValue( \"slave\", slaveServerName ) );\n    retval.append( \"      \" ).append( XMLHandler.addTagValue( \"seqname\", sequenceName ) );\n    retval.append( \"      \" ).append( XMLHandler.addTagValue( \"increment\", increment ) );\n\n    return retval.toString();\n  }\n\n  @Override\n  public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases ) throws KettleException {\n    try {\n      valuename = rep.getStepAttributeString( id_step, \"valuename\" );\n      slaveServerName = rep.getStepAttributeString( id_step, \"slave\" );\n      sequenceName = rep.getStepAttributeString( id_step, \"seqname\" );\n      increment = rep.getStepAttributeString( id_step, \"increment\" );\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages.getString( PKG, \"GetSequenceMeta.Exception.UnableToReadStepInfo\" )\n        + id_step, e );\n    }\n  }\n\n  @Override\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, \"valuename\", valuename );\n      rep.saveStepAttribute( id_transformation, id_step, \"slave\", slaveServerName );\n      rep.saveStepAttribute( id_transformation, id_step, \"seqname\", sequenceName );\n      rep.saveStepAttribute( id_transformation, id_step, \"increment\", increment );\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages.getString( PKG, \"GetSequenceMeta.Exception.UnableToSaveStepInfo\" )\n        + id_step, e );\n    }\n  }\n\n  @Override","sourceCodeStart":98,"sourceCodeEnd":134,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/trans/steps/getslavesequence/GetSlaveSequenceMeta.java#L98-L134","documentation":"GetSlaveSequenceMeta.readRep throws KettleException with 'UnableToReadStepInfo' (plus the step id) when reading the step's attributes from a repository fails. Any exception from rep.getStepAttributeString for valuename/slave/seqname/increment is wrapped with the id_step appended. This surfaces repository connectivity or schema problems during transformation load from a database repository.","triggerScenarios":"Loading a transformation from a repository; the underlying repository throws while executing getStepAttributeString, e.g. DB connection lost mid-load or r_step_attribute table missing/corrupt.","commonSituations":"Database repository unavailable or network dropped; repository schema not upgraded after a PDI version change; insufficient DB permissions to read r_step_attribute; corrupted repository rows.","solutions":["Check the repository database connection and network availability.","Verify the repository schema matches the PDI version (run repository upgrade if needed).","Grant the repository user SELECT on r_step_attribute.","Export the transformation from the repository to XML as a workaround and load from file."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// Verify repository connectivity before loading\nRepository rep = new KettleDatabaseRepository();\nrep.connect( username, password );\nif ( !rep.isConnected() ) throw new IllegalStateException( \"Repository not connected\" );","typeGuard":null,"tryCatchPattern":"try {\n  TransMeta tm = new TransMeta( rep, transName, directory );\n} catch ( KettleException e ) {\n  if ( e.getMessage().startsWith( \"UnableToReadStepInfo\" ) || e.getMessage().contains( \"UnableToReadStepInfo\" ) ) {\n    // check DB connection / repository schema, then retry or load from XML fallback\n  } else throw e;\n}","preventionTips":["Schedule repository schema upgrades with every PDI upgrade","Monitor repository DB availability before batch loads","Grant repository users SELECT on r_step_attribute","Keep XML exports as a fallback load path"],"tags":["kettle","pdi","repository","database"],"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"}