pentaho/pentaho-kettle · error · KettleException

Edi2Xml.Exception.UnableToSaveStepInfoToRepository

Edi2Xml.Exception.UnableToSaveStepInfoToRepository

Error message

Edi2Xml.Exception.UnableToSaveStepInfoToRepository

What it means

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.

Solutions

  1. Inspect the wrapped cause for the SQL/connection error
  2. Verify repository write permissions and disk space
  3. Check attribute values fit repository column sizes
  4. Retry the save after the repository is healthy
Defensive patterns

Strategy: try-catch

Try / catch

try { meta.saveRep(rep, metaStore, idTrans, idStep); } catch (KettleException e) { logger.error("saveRep failed for id_step=" + idStep, e); throw e; }

Prevention

When it happens

Trigger: Calling saveRep when the repository connection fails or a DB error occurs during saveStepAttribute calls for id_transformation/id_step.

Common situations: Repository DB read-only or out of space; broken connection mid-save; oversized attribute values violating column limits.

Related errors


AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13). Data as JSON: /api/errors/62092226a99a696e. Report an issue: GitHub.

Appendix: source

Thrown at plugins/edi2xml/impl/src/main/java/org/pentaho/di/trans/steps/edi2xml/Edi2XmlMeta.java:118

  @Override
  public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases ) throws KettleException {
    try {
      inputField = rep.getStepAttributeString( id_step, "inputfield" );
      outputField = rep.getStepAttributeString( id_step, "outputfield" );
    } catch ( Exception e ) {
      throw new KettleException( BaseMessages
        .getString( PKG, "Edi2Xml.Exception.UnexpectedErrorInReadingStepInfo" ), e );
    }
  }

  @Override
  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step ) throws KettleException {
    try {
      rep.saveStepAttribute( id_transformation, id_step, "inputfield", inputField );
      rep.saveStepAttribute( id_transformation, id_step, "outputfield", outputField );
    } catch ( Exception e ) {
      throw new KettleException( BaseMessages
        .getString( PKG, "Edi2Xml.Exception.UnableToSaveStepInfoToRepository" )
        + id_step, e );
    }
  }

  @Override
  public void getFields( Bowl bowl, RowMetaInterface r, String origin, RowMetaInterface[] info, StepMeta nextStep,
    VariableSpace space, Repository repository, IMetaStore metaStore ) {

    ValueMetaInterface extra = null;

    if ( !Utils.isEmpty( getOutputField() ) ) {
      extra = new ValueMetaString( space.environmentSubstitute( getOutputField() ) );
      extra.setOrigin( origin );
      r.addValueMeta( extra );
    } else {
      if ( !Utils.isEmpty( getInputField() ) ) {
        extra = r.searchValueMeta( space.environmentSubstitute( getInputField() ) );

View on GitHub (pinned to f3058517a1)