pentaho/pentaho-kettle · error · KettleException
Unable to save job entry of type 'get pop' to the…
Error message
Unable to save job entry of type 'get pop' to the repository for id_job=<id_job>
What it means
JobEntryGetPOP.saveRep() writes the entry's attributes (after-get action, subfolders, proxy settings, etc.); a KettleDatabaseException is wrapped in 'Unable to save job entry of type 'get pop' to the repository for id_job=<id_job>'. It means persisting the job entry's configuration to the repository failed at the database level.
Solutions
- Confirm the repository database is writable and reachable, then retry saving
- Check r_jobentry_attribute for constraint or column-length violations caused by the values being saved
- As a workaround, export the job as XML (.kjb) instead of saving to the repository
Defensive patterns
Strategy: retry
Validate before calling
// before saving the job: check repository writability and row size limits // ensure attribute values fit column lengths in r_jobentry_attribute
Try / catch
try { saveRep(rep, metaStore, idJob, databases, metaStore); } catch (KettleException e) {
if (e.getCause() instanceof KettleDatabaseException) {
log.warn("DB save failed, retrying after reconnect...");
// reconnect and retry once, else export .kjb
}
} Prevention
- Ensure the repository account has INSERT/UPDATE on r_jobentry_attribute
- Keep attribute values (paths, proxy names) within column size limits
- Retain .kjb exports as a fallback when repository saves fail
When it happens
Trigger: JobEntryGetPOP (public saveRep) called while saving a job: rep.saveJobEntryAttribute throws KettleDatabaseException due to connection loss, transaction rollback, constraint violation, or read-only database.
Common situations: Repository DB read-only or out of space, connection dropped mid-save, overlong attribute values exceeding column sizes.
Related errors
- JobEntryCheckFilesLocked.UnableToLoadFromRepo
- JobEntryCheckFilesLocked.UnableToSaveToRepo
- JobEntryColumnsExist.Meta.UnableLoadRep
- JobEntryColumnsExist.Meta.UnableSaveRep
- JobEntryEval.UnableToLoadFromRepo
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/89ecc24d23483aa4.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/email-messages/impl/src/main/java/org/pentaho/di/job/entries/getpop/JobEntryGetPOP.java:571
rep.saveJobEntryAttribute( id_job, getObjectId(), TAG_BODY_SEARCH, bodySearch );
rep.saveJobEntryAttribute( id_job, getObjectId(), TAG_NOT_TERM_BODY_SEARCH, notTermBodySearch );
rep.saveJobEntryAttribute( id_job, getObjectId(), TAG_CONDITION_RECEIVED_DATE, MailConnectionMeta
.getConditionDateCode( conditionReceivedDate ) );
rep.saveJobEntryAttribute( id_job, getObjectId(), TAG_NOT_TERM_RECEIVED_DATE_SEARCH, notTermReceivedDateSearch );
rep.saveJobEntryAttribute( id_job, getObjectId(), TAG_RECEIVED_DATE_1, receivedDate1 );
rep.saveJobEntryAttribute( id_job, getObjectId(), TAG_RECEIVED_DATE_2, receivedDate2 );
rep.saveJobEntryAttribute( id_job, getObjectId(), TAG_ACTION_TYPE, MailConnectionMeta
.getActionTypeCode( actiontype ) );
rep.saveJobEntryAttribute( id_job, getObjectId(), TAG_MOVE_TO_IMAP_FOLDER, moveToIMAPFolder );
rep.saveJobEntryAttribute( id_job, getObjectId(), TAG_CREATE_MOVE_TO_FOLDER, createMoveToFolder );
rep.saveJobEntryAttribute( id_job, getObjectId(), TAG_CREATE_LOCAL_FOLDER, createLocalFolder );
rep.saveJobEntryAttribute( id_job, getObjectId(), TAG_AFTER_GET_IMAP, MailConnectionMeta
.getAfterGetIMAPCode( aftergetimap ) );
rep.saveJobEntryAttribute( id_job, getObjectId(), TAG_INCLUDE_SUBFOLDERS, includeSubfolders );
rep.saveJobEntryAttribute( id_job, getObjectId(), TAG_USE_PROXY, useProxy );
rep.saveJobEntryAttribute( id_job, getObjectId(), TAG_PROXY_USER_NAME, proxyUserName );
} catch ( KettleDatabaseException dbe ) {
throw new KettleException( "Unable to save job entry of type 'get pop' to the repository for id_job="
+ id_job, dbe );
}
}
public String getPort() {
return sslPort;
}
/**
* @return Returns the usingAuthentication.
*/
public String isUsingAuthentication() {
return usingAuthentication;
}
/**
* @param usingAuthentication
* The usingAuthentication to set.View on GitHub (pinned to f3058517a1)