pentaho/pentaho-kettle · error · KettleException
JobPGPDecryptFiles.Error.Exception.UnableSaveRep
Error message
JobPGPDecryptFiles.Error.Exception.UnableSaveRep
What it means
Thrown by JobEntryPGPDecryptFiles.saveRep when saving the entry's per-file attributes (passphrase, destination_filefolder, wildcard) to the repository fails with a KettleDatabaseException. It identifies the entry by id_job and wraps the underlying DB error.
Solutions
- Retry the save after confirming repository DB connectivity.
- Check the wrapped KettleDatabaseException for the exact SQL error (constraint/size/lock).
- Shorten or split oversized attribute values (e.g. long wildcard lists).
- Upgrade the repository schema to match the Pentaho version.
Example fix
// before rep.saveJobEntryAttribute( id_job, getObjectId(), i, "wildcard", wildcard[i] ); // after: guard oversized values String wc = wildcard[i] != null && wildcard[i].length() > 2000 ? wildcard[i].substring( 0, 2000 ) : wildcard[i]; rep.saveJobEntryAttribute( id_job, getObjectId(), i, "wildcard", wc );
Defensive patterns
Strategy: try-catch
Validate before calling
// pre-check oversized attribute values
for ( String wc : wildcard ) {
if ( wc != null && wc.length() > 2000 ) throw new IllegalArgumentException( "Wildcard too long for repository column" );
} Try / catch
try {
jobEntry.saveRep( rep, metaStore, id_job );
} catch ( KettleException e ) {
logError( "Repository save failed for PGP entry: " + e.getCause().getMessage(), e );
// retry with backoff or warn user to shorten values
} Prevention
- Keep attribute values within repository column sizes.
- Retry saves on transient DB failures.
- Upgrade repository schema before saving from newer clients.
- Watch for deadlocks when many users save concurrently.
When it happens
Trigger: rep.saveJobEntryAttribute(id_job, getObjectId(), i, ...) throws during saveRep — DB connection dropped, column length exceeded, transaction failed, or schema version mismatch.
Common situations: Repository database outage or network blip during job save; very long file lists or oversized values exceeding VALUE_STR column size; stale repository schema after upgrade; concurrent writes causing deadlock.
Related errors
- JobPGPDecryptFiles.Error.Exception.UnableLoadRep
- AbortMeta.Exception.UnableToSaveStepInfoToRepository
- Edi2Xml.Exception.UnableToSaveStepInfoToRepository
- ERROR_0002_Cannot_Load_Job_From_Repository
- ERROR_0002
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/f8b3b8e65957957b.
Report an issue: GitHub.
Appendix: source
Thrown at engine/src/main/java/org/pentaho/di/job/entries/pgpdecryptfiles/JobEntryPGPDecryptFiles.java:358
rep
.saveJobEntryAttribute(
id_job, getObjectId(), "AddMovedDateBeforeExtension", AddMovedDateBeforeExtension );
// save the arguments...
if ( source_filefolder != null ) {
for ( int i = 0; i < source_filefolder.length; i++ ) {
rep.saveJobEntryAttribute( id_job, getObjectId(), i, "source_filefolder", source_filefolder[i] );
rep.saveJobEntryAttribute( id_job, getObjectId(), i, "passphrase", Encr
.encryptPasswordIfNotUsingVariables( passphrase[i] ) );
rep
.saveJobEntryAttribute(
id_job, getObjectId(), i, "destination_filefolder", destination_filefolder[i] );
rep.saveJobEntryAttribute( id_job, getObjectId(), i, "wildcard", wildcard[i] );
}
}
} catch ( KettleDatabaseException dbe ) {
throw new KettleException( BaseMessages.getString( PKG, "JobPGPDecryptFiles.Error.Exception.UnableSaveRep" )
+ id_job, dbe );
}
}
public Result execute( Result previousResult, int nr ) throws KettleException {
try {
Result result = previousResult;
List<RowMetaAndData> rows = result.getRows();
RowMetaAndData resultRow = null;
result.setNrErrors( 1 );
result.setResult( false );
NrErrors = 0;
NrSuccess = 0;
successConditionBroken = false;
successConditionBrokenExit = false;
limitFiles = Const.toInt( environmentSubstitute( getNrErrorsLessThan() ), 10 );
View on GitHub (pinned to f3058517a1)