{"record":{"id":"e36ee78c9c96689e","repo":"pentaho/pentaho-kettle","slug":"unable-to-load-job-entry-of-type-http-to-the-repository-for","errorCode":null,"errorMessage":"Unable to load job entry of type 'HTTP' to the repository for idJob=","messagePattern":"Unable to load job entry of type 'HTTP' to the repository for idJob=","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"engine/src/main/java/org/pentaho/di/job/entries/http/JobEntryHTTP.java","lineNumber":349,"sourceCode":"      rep.saveJobEntryAttribute( idJob, getObjectId(), TAG_DEST_FIELDNAME, destinationFieldname );\n      rep.saveJobEntryAttribute( idJob, getObjectId(), TAG_RUN_EVERY_ROW, runForEveryRow );\n\n      rep.saveJobEntryAttribute( idJob, getObjectId(), TAG_USERNAME, username );\n      rep.saveJobEntryAttribute( idJob, getObjectId(), TAG_PASSWORD, Encr\n        .encryptPasswordIfNotUsingVariables( password ) );\n\n      rep.saveJobEntryAttribute( idJob, getObjectId(), TAG_PROXY_HOST, proxyHostname );\n      rep.saveJobEntryAttribute( idJob, getObjectId(), TAG_PROXY_PORT, proxyPort );\n      rep.saveJobEntryAttribute( idJob, getObjectId(), TAG_NON_PROXY_HOSTS, nonProxyHosts );\n      rep.saveJobEntryAttribute( idJob, getObjectId(), TAG_ADD_FILENAME_RESULT, addfilenameresult );\n      if ( headerName != null ) {\n        for ( int i = 0; i < headerName.length; i++ ) {\n          rep.saveJobEntryAttribute( idJob, getObjectId(), i, TAG_HEADER_NAME, headerName[ i ] );\n          rep.saveJobEntryAttribute( idJob, getObjectId(), i, TAG_HEADER_VALUE, headerValue[ i ] );\n        }\n      }\n    } catch ( KettleDatabaseException dbe ) {\n      throw new KettleException(\n        \"Unable to load job entry of type 'HTTP' to the repository for idJob=\" + idJob, dbe );\n    }\n  }\n\n  /**\n   * @return Returns the URL.\n   */\n  public String getUrl() {\n    return url;\n  }\n\n  /**\n   * @param url The URL to set.\n   */\n  public void setUrl( String url ) {\n    this.url = url;\n  }\n","sourceCodeStart":331,"sourceCodeEnd":367,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/engine/src/main/java/org/pentaho/di/job/entries/http/JobEntryHTTP.java#L331-L367","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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."],"exampleFix":"// before\nentry.saveRep(rep, metaStore, idJob);\n// after\ntry {\n  entry.saveRep(rep, metaStore, idJob);\n} catch (KettleException e) {\n  logError(\"HTTP entry save failed for idJob=\" + idJob + \": \" + e.getCause().getMessage());\n}","handlingStrategy":"try-catch","validationCode":"// confirm repository connection before saving\nif (rep == null || !rep.isConnected()) {\n  throw new KettleException(\"Repository disconnected; cannot save HTTP entry\");\n}","typeGuard":null,"tryCatchPattern":"try {\n  entry.saveRep(rep, metaStore, idJob);\n} catch (KettleException e) {\n  logError(\"HTTP entry save failed: \" + e.getCause().getMessage());\n  // retry after reconnecting or export to XML\n}","preventionTips":["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."],"tags":["kettle","repository","job-entry","http","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"}