{"record":{"id":"62092226a99a696e","repo":"pentaho/pentaho-kettle","slug":"edi2xml-exception-unabletosavestepinfotorepository","errorCode":"Edi2Xml.Exception.UnableToSaveStepInfoToRepository","errorMessage":"Edi2Xml.Exception.UnableToSaveStepInfoToRepository","messagePattern":"Edi2Xml\\.Exception\\.UnableToSaveStepInfoToRepository","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/edi2xml/impl/src/main/java/org/pentaho/di/trans/steps/edi2xml/Edi2XmlMeta.java","lineNumber":118,"sourceCode":"\n  @Override\n  public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases ) throws KettleException {\n    try {\n      inputField = rep.getStepAttributeString( id_step, \"inputfield\" );\n      outputField = rep.getStepAttributeString( id_step, \"outputfield\" );\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages\n        .getString( PKG, \"Edi2Xml.Exception.UnexpectedErrorInReadingStepInfo\" ), 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, \"inputfield\", inputField );\n      rep.saveStepAttribute( id_transformation, id_step, \"outputfield\", outputField );\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages\n        .getString( PKG, \"Edi2Xml.Exception.UnableToSaveStepInfoToRepository\" )\n        + id_step, e );\n    }\n  }\n\n  @Override\n  public void getFields( Bowl bowl, RowMetaInterface r, String origin, RowMetaInterface[] info, StepMeta nextStep,\n    VariableSpace space, Repository repository, IMetaStore metaStore ) {\n\n    ValueMetaInterface extra = null;\n\n    if ( !Utils.isEmpty( getOutputField() ) ) {\n      extra = new ValueMetaString( space.environmentSubstitute( getOutputField() ) );\n      extra.setOrigin( origin );\n      r.addValueMeta( extra );\n    } else {\n      if ( !Utils.isEmpty( getInputField() ) ) {\n        extra = r.searchValueMeta( space.environmentSubstitute( getInputField() ) );","sourceCodeStart":100,"sourceCodeEnd":136,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/edi2xml/impl/src/main/java/org/pentaho/di/trans/steps/edi2xml/Edi2XmlMeta.java#L100-L136","documentation":"Edi2XmlMeta.saveRep writes the 'inputfield' and 'outputfield' attributes to the repository. Any exception is wrapped in a KettleException with 'Edi2Xml.Exception.UnableToSaveStepInfoToRepository' plus the id_step. It means saving this step's metadata to the repository failed.","triggerScenarios":"Calling saveRep when the repository connection fails or a DB error occurs during saveStepAttribute calls for id_transformation/id_step.","commonSituations":"Repository DB read-only or out of space; broken connection mid-save; oversized attribute values violating column limits.","solutions":["Inspect the wrapped cause for the SQL/connection error","Verify repository write permissions and disk space","Check attribute values fit repository column sizes","Retry the save after the repository is healthy"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try { meta.saveRep(rep, metaStore, idTrans, idStep); } catch (KettleException e) { logger.error(\"saveRep failed for id_step=\" + idStep, e); throw e; }","preventionTips":["Ensure repository has write capacity and healthy connections","Keep attribute values within repository column limits","Retry saves after transient DB failures"],"tags":["repository","database","pdi","persistence"],"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"}