{"record":{"id":"f50401a57ceaff3d","repo":"pentaho/pentaho-kettle","slug":"unable-to-save-job-entry-of-type-sendnagiospassivecheck-to","errorCode":null,"errorMessage":"Unable to save job entry of type 'SendNagiosPassiveCheck' to the repository for id_job=","messagePattern":"Unable to save job entry of type 'SendNagiosPassiveCheck' to the repository for id_job=","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/job/entries/sendnagiospassivecheck/JobEntrySendNagiosPassiveCheck.java","lineNumber":303,"sourceCode":"  }\n\n  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_job ) throws KettleException {\n    try {\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"port\", port );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"servername\", serverName );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"password\", password );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"responseTimeOut\", responseTimeOut );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"connectionTimeOut\", connectionTimeOut );\n\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"senderServerName\", senderServerName );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"senderServiceName\", senderServiceName );\n\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"message\", message );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"encryptionMode\", getEncryptionModeCode( encryptionMode ) );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"level\", getLevelCode( level ) );\n\n    } catch ( KettleDatabaseException dbe ) {\n      throw new KettleException(\n        \"Unable to save job entry of type 'SendNagiosPassiveCheck' to the repository for id_job=\" + id_job, dbe );\n    }\n  }\n\n  /**\n   * @return Returns the serverName.\n   */\n  public String getServerName() {\n    return serverName;\n  }\n\n  /**\n   * @param serverName\n   *          The serverName to set.\n   */\n  public void setServerName( String serverName ) {\n    this.serverName = serverName;\n  }","sourceCodeStart":285,"sourceCodeEnd":321,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/job/entries/sendnagiospassivecheck/JobEntrySendNagiosPassiveCheck.java#L285-L321","documentation":"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.","triggerScenarios":"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.","commonSituations":"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).","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"],"exampleFix":"// before\njobEntry.saveRep(rep, metaStore, idJob);\n// after\ntry {\n  jobEntry.saveRep(rep, metaStore, idJob);\n} catch (KettleException e) {\n  logError(\"Save failed for SendNagiosPassiveCheck: \" + e.getCause(), e);\n  // reconnect repository / verify DB write permissions, then retry\n}","handlingStrategy":"try-catch","validationCode":"// before saveRep\nif (entry.getObjectId() == null) throw new IllegalStateException(\"Entry not persisted; save job entry first\");\nif (id_job == null) throw new IllegalArgumentException(\"id_job is null\");","typeGuard":null,"tryCatchPattern":"try {\n  entry.saveRep(rep, metaStore, idJob);\n} catch (KettleException e) {\n  logError(\"Save failed: \" + (e.getCause() != null ? e.getCause().getMessage() : e.getMessage()), e);\n  // surface to user / retry after DB recovery\n}","preventionTips":["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"],"tags":["pdi","repository","persistence"],"backgroundTag":"database-write-failed","analyzedSha":"f3058517a153da500bf4551f46d79b91bf8ec552","analyzedAt":"2026-09-13T14:04:16.340Z","contentChangedAt":"2026-09-13T14:04:16.340Z","schemaVersion":2},"datasetVersion":"2026-09-20T23:17:15.980Z"}