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
- Check the repository connection (username/password, database URL, network) and retry opening the job
- Verify id_jobentry exists in the repository (query r_jobentry / r_jobentry_attribute for the id)
- Inspect the cause (dbe) chained in the KettleException for the real root error
- Re-open or re-save the job in Spoon to repair/rewrite the entry's repository rows
- 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
- Test repository connectivity before opening jobs
- Back up r_jobentry_attribute data before repository migrations
- Keep Pentaho client and repository versions aligned
- Inspect the chained cause, never only the wrapper message
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
- GetXMLDataMeta.Exception.ErrorReadingRepository (localized…
- GetXMLDataMeta.Exception.ErrorSavingToRepository (localized…
- StepMeta.Exception.StepCouldNotBeLoaded
- StepMeta.Exception.StepInfoCouldNotBeFound
- StepMeta.Exception.UnableToSaveStepInfo
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)