{"record":{"id":"610f546ab1a11581","repo":"pentaho/pentaho-kettle","slug":"unable-to-save-step-information-to-the-repository-id-step","errorCode":null,"errorMessage":"Unable to save step information to the repository, id_step=","messagePattern":"Unable to save step information to the repository, id_step=","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/trans/steps/numberrange/NumberRangeMeta.java","lineNumber":201,"sourceCode":"  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step ) throws KettleException {\n    try {\n      rep.saveStepAttribute( id_transformation, id_step, \"inputField\", inputField );\n      rep.saveStepAttribute( id_transformation, id_step, \"outputField\", outputField );\n      rep.saveStepAttribute( id_transformation, id_step, \"fallBackValue\", getFallBackValue() );\n\n      int i = 0;\n      for ( NumberRangeRule rule : rules ) {\n        rep\n          .saveStepAttribute( id_transformation, id_step, i, \"lower_bound\", String\n            .valueOf( rule.getLowerBound() ) );\n        rep\n          .saveStepAttribute( id_transformation, id_step, i, \"upper_bound\", String\n            .valueOf( rule.getUpperBound() ) );\n        rep.saveStepAttribute( id_transformation, id_step, i, \"value\", String.valueOf( rule.getValue() ) );\n        i++;\n      }\n    } catch ( KettleDatabaseException dbe ) {\n      throw new KettleException( \"Unable to save step information to the repository, id_step=\" + id_step, dbe );\n    }\n  }\n\n  @Override\n  public void check( List<CheckResultInterface> remarks, TransMeta transMeta, StepMeta stepinfo,\n    RowMetaInterface prev, String[] input, String[] output, RowMetaInterface info, VariableSpace space,\n    Repository repository, IMetaStore metaStore ) {\n    CheckResult cr;\n    if ( prev == null || prev.size() == 0 ) {\n      cr =\n        new CheckResult(\n          CheckResult.TYPE_RESULT_WARNING, \"Not receiving any fields from previous steps!\", stepinfo );\n      remarks.add( cr );\n    } else {\n      cr =\n        new CheckResult( CheckResult.TYPE_RESULT_OK, \"Step is connected to previous one, receiving \"\n          + prev.size() + \" fields\", stepinfo );\n      remarks.add( cr );","sourceCodeStart":183,"sourceCodeEnd":219,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/trans/steps/numberrange/NumberRangeMeta.java#L183-L219","documentation":"NumberRangeMeta.saveRep() persists each rule's lower_bound/upper_bound/value attributes to the repository. A KettleDatabaseException thrown by rep.saveStepAttribute is wrapped in a KettleException with 'Unable to save step information to the repository, id_step=<id>'.","triggerScenarios":"saveRep(rep, metaStore, id_transformation, id_step) when a saveStepAttribute call raises KettleDatabaseException — DB down, write permissions, constraint failure.","commonSituations":"Repository database offline or network partition during save; read-only DB user; table lock or schema mismatch after upgrade; disk full on the repository host.","solutions":["Inspect the chained KettleDatabaseException for the concrete SQL error.","Verify repository DB connectivity, credentials, and write permissions.","Retry the transformation save once the repository is healthy.","Check for locks/schema issues and run upgrade scripts if versions differ."],"exampleFix":"null","handlingStrategy":"retry","validationCode":"// Verify repository write access / DB health before saving transformations","typeGuard":null,"tryCatchPattern":"try { meta.saveRep(rep, metaStore, transId, stepId); } catch (KettleException e) { log.error(\"Save failed for step \" + stepId + \": \" + e.getCause(), e); /* exponential backoff retry */ }","preventionTips":["Monitor repository DB uptime and disk space.","Use an account with INSERT/UPDATE rights on repository tables.","Avoid saving over flaky VPN/network links.","Run schema upgrade scripts after Pentaho upgrades."],"tags":["kettle","repository","database","metadata-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"}