{"record":{"id":"a285e399d55b2dca","repo":"pentaho/pentaho-kettle","slug":"getsequencemeta-exception-unabletosavestepinfo","errorCode":null,"errorMessage":"GetSequenceMeta.Exception.UnableToSaveStepInfo","messagePattern":"GetSequenceMeta\\.Exception\\.UnableToSaveStepInfo","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/trans/steps/getslavesequence/GetSlaveSequenceMeta.java","lineNumber":129,"sourceCode":"      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\n  public void check( List<CheckResultInterface> remarks, TransMeta transMeta, StepMeta stepMeta,\n    RowMetaInterface prev, String[] input, String[] output, RowMetaInterface info, VariableSpace space,\n    Repository repository, IMetaStore metaStore ) {\n    CheckResult cr;\n\n    if ( input.length > 0 ) {\n      cr =\n        new CheckResult( CheckResultInterface.TYPE_RESULT_OK, BaseMessages.getString(\n          PKG, \"GetSequenceMeta.CheckResult.StepIsReceving.Title\" ), stepMeta );\n      remarks.add( cr );\n    } else {\n      cr =\n        new CheckResult( CheckResultInterface.TYPE_RESULT_ERROR, BaseMessages.getString(","sourceCodeStart":111,"sourceCodeEnd":147,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/trans/steps/getslavesequence/GetSlaveSequenceMeta.java#L111-L147","documentation":"GetSlaveSequenceMeta.saveRep throws KettleException with 'UnableToSaveStepInfo' (plus id_step) when saving the step's attributes (valuename, slave, seqname, increment) to a repository fails. The original exception is wrapped as the cause. It indicates the repository refused or failed the saveStepAttribute calls.","triggerScenarios":"Saving a transformation to a database repository; rep.saveStepAttribute throws due to connection failure, read-only DB user, or constraint/schema mismatch on r_step_attribute.","commonSituations":"Repository DB in read-only mode; user lacks INSERT/UPDATE rights; repository schema out of date after PDI upgrade; database disk full or connection dropped mid-save.","solutions":["Check repository DB connectivity and retry the save.","Grant the repository user INSERT/UPDATE on r_step_attribute.","Verify the repository schema version matches your PDI release.","Check DB disk space and server error logs for the underlying failure."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// Check repository is writable before saving\nif ( rep.isReadOnly() ) throw new IllegalStateException( \"Repository is read-only; cannot save transformation\" );","typeGuard":null,"tryCatchPattern":"try {\n  transMeta.saveRep( rep, metaStore, null, null );\n} catch ( KettleException e ) {\n  if ( e.getMessage().contains( \"UnableToSaveStepInfo\" ) ) {\n    // inspect e.getCause() for DB error; check permissions/disk, then retry save\n  } else throw e;\n}","preventionTips":["Use a repository account with INSERT/UPDATE on r_step_attribute","Avoid read-only/standby repository databases for saves","Monitor DB disk space on repository hosts","Upgrade repository schema alongside PDI"],"tags":["kettle","pdi","repository","database","save"],"backgroundTag":"database-write-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"}