pentaho/pentaho-kettle · error · KettleException

Unable to load job entry of type 'Syslog' from the…

Error message

Unable to load job entry of type 'Syslog' from the repository for id_jobentry=

What it means

JobEntrySyslog.loadRep wraps any KettleException thrown while reading the Syslog job entry's attributes (server, port, priority, message, datePattern, addTimestamp, addHostname) from the Pentaho repository into a KettleException with this message, preserving the original as the cause. It signals that the repository record for this job entry could not be read, not that the Syslog entry itself is misconfigured.

Solutions

  1. Check the repository connection (username/password, database URL, network) and retry opening the job
  2. Verify id_jobentry exists in the repository (query r_jobentry / r_jobentry_attribute for the id)
  3. Inspect the cause (dbe) chained in the KettleException for the real root error
  4. Re-open or re-save the job in Spoon to repair/rewrite the entry's repository rows
  5. Restore or migrate repository metadata tables consistently to the matching Pentaho version

Example fix

// before: attributes missing after repository migration
jobEntry.loadRep(rep, metaStore, id_jobentry, databases, slaveServers); // throws
// after: ensure the entry exists first
if (rep.getJobEntry(id_jobentry) != null) {
  jobEntry.loadRep(rep, metaStore, id_jobentry, databases, slaveServers);
}
Defensive patterns

Strategy: try-catch

Validate before calling

// Java: confirm the entry exists in the repository before loading
ObjectId id = jobEntry.getObjectId();
if (id == null || rep.getJobEntry(id) == null) {
  throw new KettleException("Job entry not found in repository: " + id);
}

Type guard

if (id_jobentry != null && rep != null) { /* safe to loadRep */ }

Try / catch

try {
  jobEntry.loadRep(rep, metaStore, id_jobentry, databases, slaveServers);
} catch (KettleException e) {
  logError("Repository load failed for Syslog entry " + id_jobentry + ": " + e.getCause(), e);
  // repair repo connection or fall back to a fresh default entry
}

Prevention

When it happens

Trigger: Calling loadRep for a JobEntrySyslog when the repository throws a KettleDatabaseException: the id_jobentry does not exist, the repository connection is down/invalid, or the r_jobentry_attribute rows are corrupt or locked.

Common situations: A shared repository (database) is unreachable or migrated; a job file was exported from a different Pentaho version whose attribute schema changed; the job entry ID references a deleted entry; repository metadata tables were partially restored from backup.

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

Appendix: source

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

    } catch ( KettleXMLException xe ) {
      throw new KettleXMLException( "Unable to load job entry of type 'Syslog' from XML node", xe );
    }
  }

  public void loadRep( Repository rep, IMetaStore metaStore, ObjectId id_jobentry, List<DatabaseMeta> databases,
    List<SlaveServer> slaveServers ) throws KettleException {
    try {
      port = rep.getJobEntryAttributeString( id_jobentry, "port" );
      serverName = rep.getJobEntryAttributeString( id_jobentry, "servername" );
      facility = rep.getJobEntryAttributeString( id_jobentry, "facility" );
      priority = rep.getJobEntryAttributeString( id_jobentry, "priority" );
      message = rep.getJobEntryAttributeString( id_jobentry, "message" );
      datePattern = rep.getJobEntryAttributeString( id_jobentry, "datePattern" );
      addTimestamp = rep.getJobEntryAttributeBoolean( id_jobentry, "addTimestamp" );
      addHostname = rep.getJobEntryAttributeBoolean( id_jobentry, "addHostname" );

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

View on GitHub (pinned to f3058517a1)