pentaho/pentaho-kettle · error · KettleException
Unable to load job entry of type 'ping' exists from the…
Error message
Unable to load job entry of type 'ping' exists from the repository for id_jobentry=
What it means
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.
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
Example fix
// before
entry.loadRep(rep, metaStore, idJobentry, databases, slaveServers);
// after
try {
entry.loadRep(rep, metaStore, idJobentry, databases, slaveServers);
} catch (KettleException e) {
logError("Cannot load ping entry " + idJobentry + ": " + e.getCause(), e);
} Defensive patterns
Strategy: try-catch
Validate before calling
// before loadRep
rep.connect();
if (rep.getJobEntryObjectId(id_jobentry) == null) throw new KettleException("Job entry row missing"); Try / catch
try {
entry.loadRep(rep, metaStore, idJobentry, databases, slaveServers);
} catch (KettleException e) {
logError("Cannot load ping entry from repo: " + e.getCause(), e);
// re-save entry from Spoon or recreate it
} Prevention
- 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
When it happens
Trigger: 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.
Common situations: 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.
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
- ERROR_0002
- HTTPMeta.Exception.UnableToSaveStepInfo
- JobEntryEval.UnableToSaveToRepo
- JobEntryEvalTableContent.UnableSaveRep
- JobEntrySimple.Error.Exception.UnableSaveRep
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/90290e1f73aa2f3c.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/job/entries/ping/JobEntryPing.java:174
nbrPackets = nbrPaquets;
}
timeout = rep.getJobEntryAttributeString( id_jobentry, "timeout" );
pingtype = rep.getJobEntryAttributeString( id_jobentry, "pingtype" );
if ( Utils.isEmpty( pingtype ) ) {
pingtype = classicPing;
ipingtype = iclassicPing;
} else {
if ( pingtype.equals( systemPing ) ) {
ipingtype = isystemPing;
} else if ( pingtype.equals( bothPings ) ) {
ipingtype = ibothPings;
} else {
ipingtype = iclassicPing;
}
}
} catch ( KettleException dbe ) {
throw new KettleException(
"Unable to load job entry of type 'ping' exists 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(), "hostname", hostname );
rep.saveJobEntryAttribute( id_job, getObjectId(), "nbr_packets", nbrPackets );
// TODO: The following line may be removed 3 versions after 2.5.0
rep.saveJobEntryAttribute( id_job, getObjectId(), "nbrpaquets", nbrPackets );
rep.saveJobEntryAttribute( id_job, getObjectId(), "timeout", timeout );
rep.saveJobEntryAttribute( id_job, getObjectId(), "pingtype", pingtype );
} catch ( KettleDatabaseException dbe ) {
throw new KettleException(
"Unable to save job entry of type 'ping' to the repository for id_job=" + id_job, dbe );
}
}View on GitHub (pinned to f3058517a1)