pentaho/pentaho-kettle · error · KettleException

Unable to save job entry of type 'Syslog' to the repository…

Error message

Unable to save job entry of type 'Syslog' to the repository for id_job=

What it means

JobEntrySyslog.saveRep wraps any KettleDatabaseException thrown while persisting the Syslog job entry attributes into a KettleException with this message, keeping the original as cause. It means the write of this entry's attributes to the repository failed; nothing about the Syslog configuration itself was validated.

Solutions

  1. Check the chained KettleDatabaseException cause for the exact SQL error
  2. Verify the repository user has write privileges and the repository is not read-only
  3. Ensure getObjectId() is valid — re-save the whole job from Spoon so IDs are assigned
  4. Test repository connectivity and retry the save
  5. Check database-side limits (disk space, lock timeouts, column size for message attribute)

Example fix

// before: saving detached entry with null ObjectId
rep.saveJobEntryAttribute(id_job, jobEntry.getObjectId(), "message", msg); // throws
// after: persist the job first so the entry gets an ObjectId
job.saveRep(rep, metaStore); // assigns IDs, then attribute writes succeed
Defensive patterns

Strategy: try-catch

Validate before calling

// Java: ensure entry is attached and IDs assigned before saving attributes
if (jobEntry.getObjectId() == null) {
  throw new KettleException("Entry not persisted yet; save the job first");
}

Type guard

if (id_job != null && getObjectId() != null && rep != null) { /* safe to saveRep */ }

Try / catch

try {
  jobEntry.saveRep(rep, metaStore, id_job);
} catch (KettleException e) {
  logError("Repository save failed for Syslog entry: " + e.getCause(), e);
  // check DB connectivity/permissions, then retry once
}

Prevention

When it happens

Trigger: Calling saveRep when the repository insert/update of any attribute (port, priority, message, datePattern, addTimestamp, addHostname) fails: repository connection lost, read-only repository, ObjectId invalid/null, or constraint violation in r_jobentry_attribute.

Common situations: Saving a job while the repository database session was dropped; repository user lacks write permissions; saving a new entry whose ObjectId was never assigned (entry not yet inserted); database disk full or table locked.

Related errors


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

Appendix: source

Thrown at engine/src/main/java/org/pentaho/di/job/entries/syslog/JobEntrySyslog.java:144

    } catch ( KettleException dbe ) {
      throw new KettleException( "Unable to load job entry of type 'Syslog' from the repository for id_jobentry="
        + id_jobentry, dbe );
    }
  }

  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_job ) throws KettleException {
    try {
      rep.saveJobEntryAttribute( id_job, getObjectId(), "port", port );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "servername", serverName );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "facility", facility );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "priority", priority );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "message", message );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "datePattern", datePattern );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "addTimestamp", addTimestamp );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "addHostname", addHostname );
    } catch ( KettleDatabaseException dbe ) {
      throw new KettleException( "Unable to save job entry of type 'Syslog' to the repository for id_job="
        + id_job, dbe );
    }
  }

  /**
   * @return Returns the serverName.
   */
  public String getServerName() {
    return serverName;
  }

  /**
   * @param serverName
   *          The serverName to set.
   */
  public void setServerName( String serverName ) {
    this.serverName = serverName;
  }

View on GitHub (pinned to f3058517a1)