pentaho/pentaho-kettle · error · KettleException

Edi2Xml.Exception.UnexpectedErrorInReadingStepInfo

Edi2Xml.Exception.UnexpectedErrorInReadingStepInfo

Error message

Edi2Xml.Exception.UnexpectedErrorInReadingStepInfo

What it means

Edi2XmlMeta.readRep loads the step's input/output field names from the Kettle repository using getStepAttributeString. Any exception is wrapped in a KettleException with the localized message 'Edi2Xml.Exception.UnexpectedErrorInReadingStepInfo'. It signals an unexpected repository error while reading step info.

Solutions

  1. Check the cause exception for the underlying repository/SQL error
  2. Verify repository connectivity and credentials
  3. Confirm R_STEP_ATTRIBUTE rows exist for the given id_step
  4. Reload the transformation metadata after restoring the repository
Defensive patterns

Strategy: try-catch

Try / catch

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

Prevention

When it happens

Trigger: Calling readRep when the repository throws (connection failure, missing rows for id_step, DB error) during the two getStepAttributeString calls.

Common situations: Repository DB down or migrated; id_step pointing at deleted rows; insufficient SELECT permissions on R_STEP_ATTRIBUTE.

Understand the failure class

Background: Database query failed: Internal Server Error 500s wrapping SQL, Prisma, and connection failures — what to check first — this error's family across 16 libraries.

Related errors


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

Appendix: source

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

  @Override
  public void loadXML( Node stepnode, List<DatabaseMeta> databases, IMetaStore metaStore ) throws KettleXMLException {

    try {
      setInputField( XMLHandler.getNodeValue( XMLHandler.getSubNode( stepnode, "inputfield" ) ) );
      setOutputField( XMLHandler.getNodeValue( XMLHandler.getSubNode( stepnode, "outputfield" ) ) );
    } catch ( Exception e ) {
      throw new KettleXMLException( "Template Plugin Unable to read step info from XML node", e );
    }

  }

  @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,

View on GitHub (pinned to f3058517a1)