{"record":{"id":"90290e1f73aa2f3c","repo":"pentaho/pentaho-kettle","slug":"unable-to-load-job-entry-of-type-ping-exists-from-the","errorCode":null,"errorMessage":"Unable to load job entry of type 'ping' exists from the repository for id_jobentry=","messagePattern":"Unable to load job entry of type 'ping' exists from the repository for id_jobentry=","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/job/entries/ping/JobEntryPing.java","lineNumber":174,"sourceCode":"        nbrPackets = nbrPaquets;\n      }\n      timeout = rep.getJobEntryAttributeString( id_jobentry, \"timeout\" );\n\n      pingtype = rep.getJobEntryAttributeString( id_jobentry, \"pingtype\" );\n      if ( Utils.isEmpty( pingtype ) ) {\n        pingtype = classicPing;\n        ipingtype = iclassicPing;\n      } else {\n        if ( pingtype.equals( systemPing ) ) {\n          ipingtype = isystemPing;\n        } else if ( pingtype.equals( bothPings ) ) {\n          ipingtype = ibothPings;\n        } else {\n          ipingtype = iclassicPing;\n        }\n      }\n    } catch ( KettleException dbe ) {\n      throw new KettleException(\n        \"Unable to load job entry of type 'ping' exists from the repository for id_jobentry=\" + id_jobentry, dbe );\n    }\n  }\n\n  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_job ) throws KettleException {\n    try {\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"hostname\", hostname );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"nbr_packets\", nbrPackets );\n\n      // TODO: The following line may be removed 3 versions after 2.5.0\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"nbrpaquets\", nbrPackets );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"timeout\", timeout );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"pingtype\", pingtype );\n    } catch ( KettleDatabaseException dbe ) {\n      throw new KettleException(\n        \"Unable to save job entry of type 'ping' to the repository for id_job=\" + id_job, dbe );\n    }\n  }","sourceCodeStart":156,"sourceCodeEnd":192,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/job/entries/ping/JobEntryPing.java#L156-L192","documentation":"JobEntryPing.loadRep wraps any KettleException thrown while reading the ping entry's attributes from the repository into a KettleException with message 'Unable to load job entry of type ping exists from the repository for id_jobentry=' + id. The database exception is the cause. It signals repository deserialization of the ping entry failed.","triggerScenarios":"Calling loadRep (directly or via repository job load) when rep.getJobEntryAttributeString/Boolean for hostname, port, timeout, nbrpaquets, or pingtype throws KettleException — DB failure or corrupt/missing attribute rows.","commonSituations":"Repository DB unreachable when opening a job; attribute rows for the ping entry missing after a failed save; schema key mismatch after a Pentaho upgrade.","solutions":["Inspect getCause() for the underlying KettleDatabaseException and fix DB connectivity/corruption","Check r_jobentry_attribute rows exist for the id_jobentry and re-save the entry from Spoon","Verify repository schema version matches the installed Pentaho version"],"exampleFix":"// before\nentry.loadRep(rep, metaStore, idJobentry, databases, slaveServers);\n// after\ntry {\n  entry.loadRep(rep, metaStore, idJobentry, databases, slaveServers);\n} catch (KettleException e) {\n  logError(\"Cannot load ping entry \" + idJobentry + \": \" + e.getCause(), e);\n}","handlingStrategy":"try-catch","validationCode":"// before loadRep\nrep.connect();\nif (rep.getJobEntryObjectId(id_jobentry) == null) throw new KettleException(\"Job entry row missing\");","typeGuard":null,"tryCatchPattern":"try {\n  entry.loadRep(rep, metaStore, idJobentry, databases, slaveServers);\n} catch (KettleException e) {\n  logError(\"Cannot load ping entry from repo: \" + e.getCause(), e);\n  // re-save entry from Spoon or recreate it\n}","preventionTips":["Ensure repository DB availability before opening jobs programmatically","Re-save entries after schema upgrades to keep attribute rows consistent","Monitor repository integrity; avoid killing Spoon mid-save"],"tags":["persistence","repository","database","kettle"],"backgroundTag":"database-query-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"}