pentaho/pentaho-kettle · error · KettleException

SyslogMessageMeta.Exception.UnableToSaveStepInfo

Error message

SyslogMessageMeta.Exception.UnableToSaveStepInfo

What it means

Outer catch-all in SyslogMessageMeta.saveRep: saving the step's attributes to the repository failed (repository I/O or serialization error). The original exception is attached as the cause for diagnosis.

Solutions

  1. Check the repository DB is writable and has space, and inspect e.getCause() for the SQL error
  2. Reconnect to the repository and retry saving
  3. Upgrade/repair the repository schema (e.g. run repository upgrade scripts) to match your Kettle version
  4. Save to file (.ktr) as a fallback while fixing repository access

Example fix

// before
transMeta.save(rep, transMeta.getName(), null, true); // fails silently on cause
// after
try { transMeta.save(rep, transMeta.getName(), null, true); } catch (KettleException e) { log.error("Save failed for step " + e.getCause(), e); }
Defensive patterns

Strategy: try-catch

Validate before calling

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

Try / catch

try { meta.saveRep(rep, metaStore, id_trans, id_step); } catch (KettleException e) { logError("Repository save failed for step " + id_step + ": " + (e.getCause()!=null?e.getCause().getMessage():e.getMessage()), e); }

Prevention

When it happens

Trigger: saveRep failing due to repository write errors, constraint violations, lock contention, or a closed/invalid repository connection during transformation save.

Common situations: Repository database read-only or out of space; concurrent edits by two users; repository schema outdated relative to the Kettle client version; session timeout.

Related errors


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

Appendix: source

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

    } 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 );
    }
  }

  public void check( List<CheckResultInterface> remarks, TransMeta transMeta, StepMeta stepMeta,
    RowMetaInterface prev, String[] input, String[] output, RowMetaInterface info, VariableSpace space,
    Repository repository, IMetaStore metaStore ) {
    CheckResult cr;
    String error_message = "";

    // source filename
    if ( Utils.isEmpty( messagefieldname ) ) {
      error_message = BaseMessages.getString( PKG, "SyslogMessageMeta.CheckResult.MessageFieldMissing" );
      cr = new CheckResult( CheckResult.TYPE_RESULT_ERROR, error_message, stepMeta );
      remarks.add( cr );
    } else {
      error_message = BaseMessages.getString( PKG, "SyslogMessageMeta.CheckResult.MessageFieldOK" );
      cr = new CheckResult( CheckResult.TYPE_RESULT_OK, error_message, stepMeta );

View on GitHub (pinned to f3058517a1)