pentaho/pentaho-kettle · error · KettleException
JobEntryMSAccessBulkLoad.Meta.UnableSave
JobEntryMSAccessBulkLoad.Meta.UnableSave
Error message
JobEntryMSAccessBulkLoad.Meta.UnableSave
What it means
KettleException thrown by JobEntryMSAccessBulkLoad.saveRep when saving the entry's per-file attributes (delimiter, target_Db, target_table, etc.) to the Pentaho repository fails with a KettleDatabaseException. The message embeds the id_job. The job entry's configuration is not persisted.
Solutions
- Check repository database connectivity and retry the save.
- Verify the repository user has write permissions on the repository tables.
- Coordinate with other users — concurrent saves of the same job can conflict; reload and re-save.
- Shorten or review attribute values (db/table/delimiter strings) if a column-length constraint is reported in the wrapped exception.
Defensive patterns
Strategy: try-catch
Try / catch
try { entry.saveRep( rep, metaStore, id_job ); } catch ( KettleException e ) { logError( "Repository save failed for job " + id_job + ": " + e.getCause(), e ); /* retry after connectivity check */ } Prevention
- Use repository credentials with write access
- Coordinate saves of shared jobs to avoid conflicts
- Keep attribute values within column limits
- Back up the repository before bulk job edits
When it happens
Trigger: saveRep(Repository, IMetaStore, ObjectId id_job, ...) catching KettleDatabaseException: repository DB unreachable, transaction/lock conflict, read-only repository, attribute value too long for column, or constraint violation on r_jobentry_attribute.
Common situations: Repository DB down or connection pool exhausted while saving the job; two users saving the same job concurrently; read-only repository credentials; oversized field values exceeding column widths.
Related errors
- JobXMLWellFormed.Error.Exception.UnableSaveRep + id_job
- Unable to save job entry of type 'DTDvalidator' to the…
- AddSequenceMeta.Exception.UnableToSaveStepInfo
- ERROR_0003
- InsertUpdateMeta.Exception.UnableToSaveStepInfoToRepository
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/75f1e4de695b2f8b.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/ms-access/impl/src/main/java/org/pentaho/di/job/entries/msaccessbulkload/JobEntryMSAccessBulkLoad.java:302
try {
rep.saveJobEntryAttribute( id_job, getObjectId(), "include_subfolders", include_subfolders );
rep.saveJobEntryAttribute( id_job, getObjectId(), "add_result_filenames", add_result_filenames );
rep.saveJobEntryAttribute( id_job, getObjectId(), "is_args_from_previous", is_args_from_previous );
rep.saveJobEntryAttribute( id_job, getObjectId(), "limit", limit );
rep.saveJobEntryAttribute( id_job, getObjectId(), "success_condition", success_condition );
// 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, "source_wildcard", source_wildcard[i] );
rep.saveJobEntryAttribute( id_job, getObjectId(), i, "delimiter", delimiter[i] );
rep.saveJobEntryAttribute( id_job, getObjectId(), i, "target_Db", target_Db[i] );
rep.saveJobEntryAttribute( id_job, getObjectId(), i, "target_table", target_table[i] );
}
}
} catch ( KettleDatabaseException dbe ) {
throw new KettleException( BaseMessages.getString( PKG, "JobEntryMSAccessBulkLoad.Meta.UnableSave", ""
+ id_job, dbe.getMessage() ), dbe );
}
}
/**********************************************************
*
* @param selectedfile
* @param wildcard
* @return True if the selectedfile matches the wildcard
**********************************************************/
private boolean GetFileWildcard( String selectedfile, String wildcard ) {
Pattern pattern = null;
boolean getIt = true;
if ( !Utils.isEmpty( wildcard ) ) {
pattern = Pattern.compile( wildcard );
// First see if the file matches the regular expression!
if ( pattern != null ) {View on GitHub (pinned to f3058517a1)