pentaho/pentaho-kettle · error · KettleException

ColumnExistsMeta.Exception.UnexpectedErrorReadingStepInfo

Error message

ColumnExistsMeta.Exception.UnexpectedErrorReadingStepInfo

What it means

Outer catch-all in ColumnExistsMeta.readRep: an unexpected exception occurred while loading the step's attributes (connection, tablename, schema, result field) from the repository. The cause is chained for diagnosis.

Solutions

  1. Verify the repository database connection is up and reachable
  2. Run the repository upgrade script matching your PDI version
  3. Inspect the nested cause (e) for the actual repository error
Defensive patterns

Strategy: try-catch

Validate before calling

// Verify repository connectivity before loading step metadata
if (!rep.connect(null) || !rep.getConnection().isConnected()) {
  throw new IllegalStateException("Repository unavailable");
}

Try / catch

try {
  meta.readRep(rep, metaStore, idStep, databases);
} catch (KettleException e) {
  log.error("Repository read failed for step " + idStep + ": " + e.getCause(), e);
}

Prevention

When it happens

Trigger: Repository calls (rep.getStepAttributeString/getStepAttributeBoolean) throw during readRep for a ColumnExists step — typically repository connectivity or schema problems.

Common situations: Database repository down or network cut; repository tables missing/old schema after a PDI upgrade; invalid id_step referencing deleted rows.

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/023d5b4fcdc29c2c. Report an issue: GitHub.

Appendix: source

Thrown at plugins/core/impl/src/main/java/org/pentaho/di/trans/steps/columnexists/ColumnExistsMeta.java:246

      resultfieldname = XMLHandler.getTagValue( stepnode, "resultfieldname" ); // Optional, can be null
    } catch ( Exception e ) {
      throw new KettleXMLException( BaseMessages.getString( PKG, "ColumnExistsMeta.Exception.UnableToReadStepInfo" ),
          e );
    }
  }

  public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases )
    throws KettleException {
    try {
      database = rep.loadDatabaseMetaFromStepAttribute( id_step, "id_connection", databases );
      tablename = rep.getStepAttributeString( id_step, "tablename" );
      schemaname = rep.getStepAttributeString( id_step, "schemaname" );
      istablenameInfield = rep.getStepAttributeBoolean( id_step, "istablenameInfield" );
      tablenamefield = rep.getStepAttributeString( id_step, "tablenamefield" );
      columnnamefield = rep.getStepAttributeString( id_step, "columnnamefield" );
      resultfieldname = rep.getStepAttributeString( id_step, "resultfieldname" );
    } catch ( Exception e ) {
      throw new KettleException(
          BaseMessages.getString( PKG, "ColumnExistsMeta.Exception.UnexpectedErrorReadingStepInfo" ), e );
    }
  }

  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step )
    throws KettleException {
    try {
      rep.saveDatabaseMetaStepAttribute( id_transformation, id_step, "id_connection", database );
      rep.saveStepAttribute( id_transformation, id_step, "tablename", tablename );
      rep.saveStepAttribute( id_transformation, id_step, "schemaname", schemaname );
      rep.saveStepAttribute( id_transformation, id_step, "istablenameInfield", istablenameInfield );
      rep.saveStepAttribute( id_transformation, id_step, "tablenamefield", tablenamefield );
      rep.saveStepAttribute( id_transformation, id_step, "columnnamefield", columnnamefield );
      rep.saveStepAttribute( id_transformation, id_step, "resultfieldname", resultfieldname );

      // Also, save the step-database relationship!
      if ( database != null ) {
        rep.insertStepDatabase( id_transformation, id_step, database.getObjectId() );

View on GitHub (pinned to f3058517a1)