pentaho/pentaho-kettle · error · KettleException

Unable to load job entry of type 'SendNagiosPassiveCheck'…

Error message

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

What it means

This KettleException wraps any KettleException thrown while reading the SendNagiosPassiveCheck job entry attributes (message, encryptionMode, level) from the repository during loadRep. It indicates the repository read of this job entry's metadata failed, with the underlying database/repository exception attached as the cause. The library throws it to give context about which job entry type and row id failed to load.

Solutions

  1. Check the cause chain (dbe) for the real repository/database error and fix connectivity or credentials to the repository DB
  2. Verify rows exist in R_JOBENTRY_ATTRIBUTE for the given id_jobentry; re-save the job entry from Spoon to recreate them
  3. Repair or upgrade the repository schema with the Pentaho repository repair/upgrade tools
  4. If the repository is irrecoverable, export/recreate the job and re-enter the Nagios job entry settings

Example fix

// before
jobEntry.loadRep(rep, metaStore, idJobentry, databases, slaveServers);
// after
try {
  jobEntry.loadRep(rep, metaStore, idJobentry, databases, slaveServers);
} catch (KettleException e) {
  logError("Failed to load SendNagiosPassiveCheck entry " + idJobentry + ": " + e.getCause(), e);
  // check repository DB health before retrying
}
Defensive patterns

Strategy: try-catch

Validate before calling

// before loadRep
if (id_jobentry == null) throw new IllegalArgumentException("id_jobentry is null");
// optionally verify repository connectivity first
if (!rep.isConnected()) throw new IllegalStateException("Repository not connected");

Try / catch

try {
  entry.loadRep(rep, metaStore, idJobentry, databases, slaveServers);
} catch (KettleException e) {
  logError("Load failed: " + (e.getCause() != null ? e.getCause().getMessage() : e.getMessage()), e);
  // fall back to defaults or abort job setup
}

Prevention

When it happens

Trigger: Calling loadRep (directly or via JobMeta loading a job from a repository) when the underlying rep.getJobEntryAttributeString calls fail: repository database down/unreachable, R_JOBENTRY_ATTRIBUTE rows missing or corrupted, schema version mismatch, or an invalid id_jobentry.

Common situations: Repository database migrated or restored incompletely so attribute rows are missing; opening an old job file against a newer/older Pentaho repository schema; network drop to the repository DB mid-load; permissions revoked on the repository tables.

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

Appendix: source

Thrown at engine/src/main/java/org/pentaho/di/job/entries/sendnagiospassivecheck/JobEntrySendNagiosPassiveCheck.java:281

  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" );
      password = rep.getJobEntryAttributeString( id_jobentry, "password" );
      responseTimeOut = rep.getJobEntryAttributeString( id_jobentry, "responseTimeOut" );
      connectionTimeOut = rep.getJobEntryAttributeString( id_jobentry, "connectionTimeOut" );

      senderServerName = rep.getJobEntryAttributeString( id_jobentry, "senderServerName" );
      senderServiceName = rep.getJobEntryAttributeString( id_jobentry, "senderServiceName" );

      message = rep.getJobEntryAttributeString( id_jobentry, "message" );

      encryptionMode = getEncryptionModeByCode( rep.getJobEntryAttributeString( id_jobentry, "encryptionMode" ) );
      level = getLevelByCode( rep.getJobEntryAttributeString( id_jobentry, "level" ) );

    } catch ( KettleException dbe ) {
      throw new KettleException(
        "Unable to load job entry of type 'SendNagiosPassiveCheck' 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(), "password", password );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "responseTimeOut", responseTimeOut );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "connectionTimeOut", connectionTimeOut );

      rep.saveJobEntryAttribute( id_job, getObjectId(), "senderServerName", senderServerName );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "senderServiceName", senderServiceName );

      rep.saveJobEntryAttribute( id_job, getObjectId(), "message", message );
      rep.saveJobEntryAttribute( id_job, getObjectId(), "encryptionMode", getEncryptionModeCode( encryptionMode ) );

View on GitHub (pinned to f3058517a1)