pentaho/pentaho-kettle · error · KettleException

SyslogMessageMeta.Exception.UnexpectedErrorReadingStepInfo

Error message

SyslogMessageMeta.Exception.UnexpectedErrorReadingStepInfo

What it means

Outer catch-all in SyslogMessageMeta.readRep: an unexpected exception occurred while reading the step's attributes (message field, server, port, facility, priority) from the repository. The localized message wraps the original exception, which is attached as the cause.

Solutions

  1. Check repository connectivity and re-run the load
  2. Re-save the transformation to the repository to rewrite its attribute rows
  3. Inspect the cause chain for the underlying repository/SQL error
  4. Restore the transformation from a repository backup or re-import from XML

Example fix

// before
meta.loadRep(rep, metaStore, id_step, databases); // silent about cause
// after
try { meta.loadRep(rep, metaStore, id_step, databases); } catch (KettleException e) { log.error("Cause: " + e.getCause(), e); }
Defensive patterns

Strategy: try-catch

Validate before calling

if (rep == null || !rep.isConnected()) { throw new KettleException("Repository not connected before loadRep"); }

Try / catch

try { meta.readRep(rep, metaStore, id_step, databases); } catch (KettleException e) { logError("Repository read failed: " + (e.getCause()!=null?e.getCause().getMessage():e.getMessage()), e); }

Prevention

When it happens

Trigger: loadRep invoking readRep against a repository where the step's attribute rows are missing, corrupted, or the repository connection errors out mid-read.

Common situations: Repository schema partially migrated between Kettle versions; deleted repository rows for the step; network/DB errors while querying the repository tables.

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/57bb47949aa8a2fb. Report an issue: GitHub.

Appendix: source

Thrown at engine/src/main/java/org/pentaho/di/trans/steps/syslog/SyslogMessageMeta.java:256

      throw new KettleXMLException( BaseMessages.getString(
        PKG, "SyslogMessageMeta.Exception.UnableToReadStepInfo" ), e );
    }
  }

  public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases ) throws KettleException {

    try {
      messagefieldname = rep.getStepAttributeString( id_step, "messagefieldname" );
      serverName = rep.getJobEntryAttributeString( id_step, "servername" );
      port = rep.getJobEntryAttributeString( id_step, "port" );
      facility = rep.getJobEntryAttributeString( id_step, "facility" );
      priority = rep.getJobEntryAttributeString( id_step, "priority" );
      datePattern = rep.getJobEntryAttributeString( id_step, "datePattern" );
      addTimestamp = rep.getJobEntryAttributeBoolean( id_step, "addTimestamp" );
      addHostName = rep.getJobEntryAttributeBoolean( id_step, "addHostName" );

    } catch ( Exception e ) {
      throw new KettleException( BaseMessages.getString(
        PKG, "SyslogMessageMeta.Exception.UnexpectedErrorReadingStepInfo" ), e );
    }
  }

  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step ) throws KettleException {
    try {
      rep.saveStepAttribute( id_transformation, id_step, "messagefieldname", messagefieldname );
      rep.saveJobEntryAttribute( id_transformation, id_step, "port", port );
      rep.saveJobEntryAttribute( id_transformation, id_step, "servername", serverName );
      rep.saveJobEntryAttribute( id_transformation, id_step, "facility", facility );
      rep.saveJobEntryAttribute( id_transformation, id_step, "priority", priority );
      rep.saveJobEntryAttribute( id_transformation, id_step, "datePattern", datePattern );
      rep.saveJobEntryAttribute( id_transformation, id_step, "addTimestamp", addTimestamp );
      rep.saveJobEntryAttribute( id_transformation, id_step, "addHostName", addHostName );

    } catch ( Exception e ) {
      throw new KettleException( BaseMessages.getString( PKG, "SyslogMessageMeta.Exception.UnableToSaveStepInfo" )
        + id_step, e );

View on GitHub (pinned to f3058517a1)