pentaho/pentaho-kettle · error · KettleXMLException

GetSequenceMeta.Exception.ErrorLoadingStepInfo

Error message

GetSequenceMeta.Exception.ErrorLoadingStepInfo

What it means

GetSlaveSequenceMeta.readData throws KettleXMLException with 'ErrorLoadingStepInfo' when parsing the step's XML node fails while loading a transformation from a .ktr file. It wraps the underlying exception (e) while reading valuename/slave/seqname/increment tags, so the root cause is preserved. This means the step XML is malformed or an XMLHandler call failed unexpectedly.

Solutions

  1. Open the .ktr in an XML editor and fix/validate the XML around this step's node.
  2. Re-create the Get slave sequence step in Spoon and re-save the transformation.
  3. Restore the .ktr from version control or backup.
  4. Compare the step XML against a known-good export (tags: valuename, slave, seqname, increment).

Example fix

// before: malformed step XML
<valuename>seq<valuename>
// after: well-formed
<valuename>seq</valuename>
Defensive patterns

Strategy: try-catch

Validate before calling

// Validate the .ktr XML before loading
Document doc = XMLHandler.loadXMLFile( new File( ktrPath ) );
if ( XMLHandler.getSubNode( doc, "transformation" ) == null )
  throw new IllegalArgumentException( "Not a valid transformation XML: " + ktrPath );

Try / catch

try {
  TransMeta transMeta = new TransMeta( ktrPath );
} catch ( KettleXMLException e ) {
  if ( e.getMessage().contains( "ErrorLoadingStepInfo" ) ) {
    Throwable root = e.getCause();
    // log root cause, fall back to re-creating the step or restoring backup
  } else throw e;
}

Prevention

When it happens

Trigger: loadXML -> readData raises a non-KettleXMLException while calling XMLHandler.getTagValue on the stepnode, e.g. the node passed in is null or malformed XML triggers a parse exception.

Common situations: Hand-edited .ktr files with broken XML; copy-pasted step XML missing required tags; version migration leaving corrupt step nodes; file encoding issues corrupting the XML.

Related errors


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

Appendix: source

Thrown at engine/src/main/java/org/pentaho/di/trans/steps/getslavesequence/GetSlaveSequenceMeta.java:75

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

  @Override
  public Object clone() {
    Object retval = super.clone();
    return retval;
  }

  private void readData( Node stepnode, List<DatabaseMeta> databases ) throws KettleXMLException {
    try {
      valuename = XMLHandler.getTagValue( stepnode, "valuename" );
      slaveServerName = XMLHandler.getTagValue( stepnode, "slave" );
      sequenceName = XMLHandler.getTagValue( stepnode, "seqname" );
      increment = XMLHandler.getTagValue( stepnode, "increment" );
    } catch ( Exception e ) {
      throw new KettleXMLException(
        BaseMessages.getString( PKG, "GetSequenceMeta.Exception.ErrorLoadingStepInfo" ), e );
    }
  }

  @Override
  public void setDefault() {
    valuename = "id";
    slaveServerName = "slave server name";
    sequenceName = "Slave Sequence Name -- To be configured";
    increment = "10000";
  }

  @Override
  public void getFields( Bowl bowl, RowMetaInterface row, String name, RowMetaInterface[] info, StepMeta nextStep,
    VariableSpace space, Repository repository, IMetaStore metaStore ) throws KettleStepException {
    ValueMetaInterface v = new ValueMetaInteger( valuename );
    v.setOrigin( name );
    row.addValueMeta( v );

View on GitHub (pinned to f3058517a1)