pentaho/pentaho-kettle · error · KettleException
Unable to save job entry of type 'SendNagiosPassiveCheck'…
Error message
Unable to save job entry of type 'SendNagiosPassiveCheck' to the repository for id_job=
What it means
This KettleException wraps a KettleDatabaseException thrown while persisting the SendNagiosPassiveCheck job entry attributes (message, encryptionMode, level) to the repository in saveRep. It means the repository write for this job entry failed; the original database exception is preserved as the cause. It is thrown to identify exactly which job entry type and job id failed to save.
Solutions
- Inspect the wrapped KettleDatabaseException cause and fix the underlying DB issue (connectivity, locks, permissions)
- Verify the repository user has INSERT/UPDATE rights on R_JOBENTRY_ATTRIBUTE
- Ensure the job entry has a valid ObjectId (it is saved to the repository) before saving attributes
- Retry the save after the repository DB recovers; if schema-related, run the repository upgrade tool
Example fix
// before
jobEntry.saveRep(rep, metaStore, idJob);
// after
try {
jobEntry.saveRep(rep, metaStore, idJob);
} catch (KettleException e) {
logError("Save failed for SendNagiosPassiveCheck: " + e.getCause(), e);
// reconnect repository / verify DB write permissions, then retry
} Defensive patterns
Strategy: try-catch
Validate before calling
// before saveRep
if (entry.getObjectId() == null) throw new IllegalStateException("Entry not persisted; save job entry first");
if (id_job == null) throw new IllegalArgumentException("id_job is null"); Try / catch
try {
entry.saveRep(rep, metaStore, idJob);
} catch (KettleException e) {
logError("Save failed: " + (e.getCause() != null ? e.getCause().getMessage() : e.getMessage()), e);
// surface to user / retry after DB recovery
} Prevention
- Ensure repository user has write (INSERT/UPDATE) privileges
- Verify DB connectivity before long save operations
- Don't run against a read-only repository account
- Re-save from Spoon when attribute rows look stale after a restore
When it happens
Trigger: Calling saveRep (or saving the job from Spoon) when rep.saveJobEntryAttribute throws: repository DB connection lost, table locked or read-only, constraint violation, or id_job/getObjectId() being null/invalid.
Common situations: Repository DB restarted or network dropped mid-save; read-only database user; repository schema mismatch after Pentaho version change; saving a job entry that was never persisted (null ObjectId).
Related errors
- AccessInputMeta.Exception.ErrorSavingToRepository
- CloneRowMeta.Exception.UnexpectedErrorReadingStepInfo
- ColumnExistsMeta.Exception.UnableToSaveStepInfo
- ColumnExistsMeta.Exception.UnexpectedErrorReadingStepInfo
- CreditCardValidatorMeta.Exception.UnableToSaveStepInfo
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/f50401a57ceaff3d.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/job/entries/sendnagiospassivecheck/JobEntrySendNagiosPassiveCheck.java:303
}
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 ) );
rep.saveJobEntryAttribute( id_job, getObjectId(), "level", getLevelCode( level ) );
} catch ( KettleDatabaseException dbe ) {
throw new KettleException(
"Unable to save job entry of type 'SendNagiosPassiveCheck' 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)