pentaho/pentaho-kettle · error · KettleException
Unable to load job entry of type 'SNMPTrap' from the…
Error message
Unable to load job entry of type 'SNMPTrap' from the repository for id_jobentry=
What it means
JobEntrySNMPTrap.loadRep wraps any KettleException raised while reading the SNMPTrap entry's attributes ('servername', 'port', 'community', 'targettype', 'user', 'passphrase', 'engineid') from the repository, rethrowing as KettleException with the message and id_jobentry. It indicates the repository metadata for this entry cannot be loaded.
Solutions
- Test and restore the repository database connection.
- Verify rows exist in R_JOBENTRY_ATTRIBUTE for the given id_jobentry.
- Re-create/re-save the SNMPTrap job entry to repopulate repository attributes.
- Inspect the chained cause for the underlying SQL failure and address it.
Defensive patterns
Strategy: try-catch
Validate before calling
if (idJobEntry == null || rep == null) throw new KettleException("Repository or id_jobentry missing before loadRep"); Try / catch
try {
entry.loadRep(rep, metaStore, idJobEntry, databases, slaveServers);
} catch (KettleException e) {
logger.error("SNMPTrap loadRep failed id=" + idJobEntry + ", cause=" + e.getCause(), e);
} Prevention
- Verify repository connectivity before opening jobs.
- Do not delete repository rows directly in the DB.
- Upgrade repository schema alongside Pentaho upgrades.
- Log the chained cause to pinpoint SQL-level failures.
When it happens
Trigger: Calling loadRep for a JobEntrySNMPTrap when Repository.getJobEntryAttributeString throws - repository DB unavailable, missing rows for the given id_jobentry, or corrupted attributes.
Common situations: Repository connection dropped while opening a job; rows deleted directly from the DB; schema drift after Pentaho upgrade; wrong id_jobentry passed in.
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
- AddSequenceMeta.Exception.UnableToSaveStepInfo
- ColumnExistsMeta.Exception.UnableToSaveStepInfo
- ColumnExistsMeta.Exception.UnexpectedErrorReadingStepInfo
- CreditCardValidatorMeta.Exception.UnableToSaveStepInfo
- CubeInputMeta.Exception.UnableToSaveStepInfo
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/d105682516ff7ef9.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/job/entries/snmptrap/JobEntrySNMPTrap.java:203
}
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" );
oid = rep.getJobEntryAttributeString( id_jobentry, "oid" );
message = rep.getJobEntryAttributeString( id_jobentry, "message" );
comString = rep.getJobEntryAttributeString( id_jobentry, "comstring" );
timeout = rep.getJobEntryAttributeString( id_jobentry, "timeout" );
nrretry = rep.getJobEntryAttributeString( id_jobentry, "nrretry" );
targettype = rep.getJobEntryAttributeString( id_jobentry, "targettype" );
user = rep.getJobEntryAttributeString( id_jobentry, "user" );
passphrase = Encr.decryptPasswordOptionallyEncrypted( rep.getJobEntryAttributeString( id_jobentry, "passphrase" ) );
engineid = rep.getJobEntryAttributeString( id_jobentry, "engineid" );
} catch ( KettleException dbe ) {
throw new KettleException(
"Unable to load job entry of type 'SNMPTrap' 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(), "oid", oid );
rep.saveJobEntryAttribute( id_job, getObjectId(), "message", message );
rep.saveJobEntryAttribute( id_job, getObjectId(), "comstring", comString );
rep.saveJobEntryAttribute( id_job, getObjectId(), "timeout", timeout );
rep.saveJobEntryAttribute( id_job, getObjectId(), "nrretry", nrretry );
rep.saveJobEntryAttribute( id_job, getObjectId(), "targettype", targettype );
rep.saveJobEntryAttribute( id_job, getObjectId(), "user", user );
rep.saveJobEntryAttribute( id_job, getObjectId(), "passphrase", Encr.encryptPasswordIfNotUsingVariables( passphrase ) );
rep.saveJobEntryAttribute( id_job, getObjectId(), "engineid", engineid );
View on GitHub (pinned to f3058517a1)