pentaho/pentaho-kettle · error · KettleException
Unable to load job entry of type 'HTTP' to the repository…
Error message
Unable to load job entry of type 'HTTP' to the repository for idJob=
What it means
Thrown by JobEntryHTTP.saveRep when saving the entry's attributes — including indexed header name/value rows — fails with a KettleDatabaseException. Note the message wording says 'load' but this is the save path (another copy-paste bug). The idJob is appended and the cause chained. It means the 'HTTP' job entry state could not be persisted.
Solutions
- Check the chained KettleDatabaseException for the root SQL error and fix the repository DB problem.
- Verify write permissions and available storage on the repository.
- Retry the save after restoring the connection; or export the job to XML as a workaround.
- Reduce concurrent edits/saves to the same job to avoid lock contention.
Example fix
// before
entry.saveRep(rep, metaStore, idJob);
// after
try {
entry.saveRep(rep, metaStore, idJob);
} catch (KettleException e) {
logError("HTTP entry save failed for idJob=" + idJob + ": " + e.getCause().getMessage());
} Defensive patterns
Strategy: try-catch
Validate before calling
// confirm repository connection before saving
if (rep == null || !rep.isConnected()) {
throw new KettleException("Repository disconnected; cannot save HTTP entry");
} Try / catch
try {
entry.saveRep(rep, metaStore, idJob);
} catch (KettleException e) {
logError("HTTP entry save failed: " + e.getCause().getMessage());
// retry after reconnecting or export to XML
} Prevention
- Save during stable DB connectivity; avoid saving while network is flaky.
- Check DB permissions and storage before large saves.
- Avoid concurrent edits of the same job.
- Validate the repository schema after upgrades.
When it happens
Trigger: Calling saveRep on JobEntryHTTP when rep.saveJobEntryAttribute (including per-header indexed saves) throws KettleDatabaseException — repository DB down, constraint violation, read-only repository, or failed transaction during job save.
Common situations: Repository connection lost while saving a large job with many headers; DB storage limits hit; permission errors on r_jobentry_attribute; concurrent saves causing lock timeouts.
Related errors
- Unable to load job entry of type 'HTTP' from the repository…
- JobEntryMSAccessBulkLoad.Meta.UnableSave
- JobEntrySimple.Error.Exception.UnableLoadRep
- JobFoldersCompare.Meta.UnableLoadRep
- JobFoldersCompare.Meta.UnableSaveRep
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/e36ee78c9c96689e.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/job/entries/http/JobEntryHTTP.java:349
rep.saveJobEntryAttribute( idJob, getObjectId(), TAG_DEST_FIELDNAME, destinationFieldname );
rep.saveJobEntryAttribute( idJob, getObjectId(), TAG_RUN_EVERY_ROW, runForEveryRow );
rep.saveJobEntryAttribute( idJob, getObjectId(), TAG_USERNAME, username );
rep.saveJobEntryAttribute( idJob, getObjectId(), TAG_PASSWORD, Encr
.encryptPasswordIfNotUsingVariables( password ) );
rep.saveJobEntryAttribute( idJob, getObjectId(), TAG_PROXY_HOST, proxyHostname );
rep.saveJobEntryAttribute( idJob, getObjectId(), TAG_PROXY_PORT, proxyPort );
rep.saveJobEntryAttribute( idJob, getObjectId(), TAG_NON_PROXY_HOSTS, nonProxyHosts );
rep.saveJobEntryAttribute( idJob, getObjectId(), TAG_ADD_FILENAME_RESULT, addfilenameresult );
if ( headerName != null ) {
for ( int i = 0; i < headerName.length; i++ ) {
rep.saveJobEntryAttribute( idJob, getObjectId(), i, TAG_HEADER_NAME, headerName[ i ] );
rep.saveJobEntryAttribute( idJob, getObjectId(), i, TAG_HEADER_VALUE, headerValue[ i ] );
}
}
} catch ( KettleDatabaseException dbe ) {
throw new KettleException(
"Unable to load job entry of type 'HTTP' to the repository for idJob=" + idJob, dbe );
}
}
/**
* @return Returns the URL.
*/
public String getUrl() {
return url;
}
/**
* @param url The URL to set.
*/
public void setUrl( String url ) {
this.url = url;
}
View on GitHub (pinned to f3058517a1)