{"record":{"id":"9972d1e5d19e3984","repo":"pentaho/pentaho-kettle","slug":"jobexportrepository-meta-unablesaverep","errorCode":"JobExportRepository.Meta.UnableSaveRep","errorMessage":"JobExportRepository.Meta.UnableSaveRep","messagePattern":"JobExportRepository\\.Meta\\.UnableSaveRep","errorType":"error_code","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/export-repository/impl/src/main/java/org/pentaho/di/job/entries/exportrepository/JobEntryExportRepository.java","lineNumber":248,"sourceCode":"      rep.saveJobEntryAttribute( id_job, getObjectId(), \"repositoryname\", repositoryname );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"username\", username );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"password\", Encr\n        .encryptPasswordIfNotUsingVariables( password ) );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"targetfilename\", targetfilename );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"iffileexists\", iffileexists );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"export_type\", export_type );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"directoryPath\", directoryPath );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"add_date\", add_date );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"add_time\", add_time );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"SpecifyFormat\", SpecifyFormat );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"date_time_format\", date_time_format );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"createfolder\", createfolder );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"newfolder\", newfolder );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"add_result_filesname\", add_result_filesname );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"nr_errors_less_than\", nr_errors_less_than );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"success_condition\", success_condition );\n    } catch ( KettleDatabaseException dbe ) {\n      throw new KettleException( BaseMessages.getString( PKG, \"JobExportRepository.Meta.UnableSaveRep\", \"\"\n        + id_job ), dbe );\n    }\n  }\n\n  public void setSuccessCondition( String success_condition ) {\n    this.success_condition = success_condition;\n  }\n\n  public String getSuccessCondition() {\n    return success_condition;\n  }\n\n  public void setRepositoryname( String repositoryname ) {\n    this.repositoryname = repositoryname;\n  }\n\n  public String getRepositoryname() {\n    return repositoryname;","sourceCodeStart":230,"sourceCodeEnd":266,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/export-repository/impl/src/main/java/org/pentaho/di/job/entries/exportrepository/JobEntryExportRepository.java#L230-L266","documentation":"JobEntryExportRepository.saveRep wraps KettleDatabaseException from saving the entry's attributes in a KettleException with the localized 'JobExportRepository.Meta.UnableSaveRep' message including the job id. The attribute write to the repository failed.","triggerScenarios":"saveRep called when the repository DB throws during saveJobEntryAttribute (connection lost, constraint violation, read-only user, value too long).","commonSituations":"Read-only repository credentials; network interruption while saving a job; oversized attribute values.","solutions":["Read the wrapped KettleDatabaseException for the root SQL cause","Grant the repository user INSERT/UPDATE rights on r_jobentry_attribute","Reconnect and retry the save; shorten values if column limits are hit"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try { entry.saveRep( rep, metaStore, idJob ); } catch ( KettleException e ) { log.error( \"Repo save failed: \" + e.getCause(), e ); }","preventionTips":["Ensure write access to r_jobentry_attribute","Handle transient DB errors with retry","Keep attribute values within column limits"],"tags":["repository","job-entry","database","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"}