{"record":{"id":"b2726c1815ba0739","repo":"pentaho/pentaho-kettle","slug":"unable-to-save-job-entry-of-type-xslt-to-the-repository-for","errorCode":null,"errorMessage":"Unable to save job entry of type 'xslt' to the repository for id_job=<id_job>","messagePattern":"Unable to save job entry of type 'xslt' to the repository for id_job=<id_job>","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/xml/core/src/main/java/org/pentaho/di/job/entries/xslt/JobEntryXSLT.java","lineNumber":289,"sourceCode":"    try {\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"xmlfilename\", xmlfilename );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"xslfilename\", xslfilename );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"outputfilename\", outputfilename );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"iffileexists\", iffileexists );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"addfiletoresult\", addfiletoresult );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"filenamesfromprevious\", filenamesfromprevious );\n      rep.saveJobEntryAttribute( id_job, getObjectId(), \"xsltfactory\", xsltfactory );\n\n      for ( int i = 0; i < parameterName.length; i++ ) {\n        rep.saveJobEntryAttribute( id_job, getObjectId(), i, \"param_field\", parameterField[i] );\n        rep.saveJobEntryAttribute( id_job, getObjectId(), i, \"param_name\", parameterName[i] );\n      }\n      for ( int i = 0; i < outputPropertyName.length; i++ ) {\n        rep.saveJobEntryAttribute( id_job, getObjectId(), i, \"output_property_name\", outputPropertyName[i] );\n        rep.saveJobEntryAttribute( id_job, getObjectId(), i, \"output_property_value\", outputPropertyValue[i] );\n      }\n    } catch ( KettleDatabaseException dbe ) {\n      throw new KettleException( \"Unable to save job entry of type 'xslt' to the repository for id_job=\" + id_job, dbe );\n    }\n  }\n\n  public String getXSLTFactory() {\n    return xsltfactory;\n  }\n\n  public void setXSLTFactory( String xsltfactoryin ) {\n    xsltfactory = xsltfactoryin;\n  }\n\n  public String getRealxmlfilename() {\n    return environmentSubstitute( getxmlFilename() );\n  }\n\n  public String getoutputfilename() {\n    return environmentSubstitute( getoutputFilename() );\n  }","sourceCodeStart":271,"sourceCodeEnd":307,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/xml/core/src/main/java/org/pentaho/di/job/entries/xslt/JobEntryXSLT.java#L271-L307","documentation":"JobEntryXSLT.saveRep rethrows KettleException when writing the entry's attributes, including per-index output_property_name/output_property_value rows, to the repository fails with a KettleDatabaseException.","triggerScenarios":"Saving a job with an XSLT entry where any rep.saveJobEntryAttribute call (including the output-property loop) throws KettleDatabaseException.","commonSituations":"Repository DB connection dropped during save; constraint or column-length violations; read-only repository user; very many output properties.","solutions":["Read the wrapped KettleDatabaseException for the SQL error","Check repository connectivity and disk space","Verify write privileges on the repository","Reduce or shorten output property names/values if column limits are hit"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n  entry.saveRep( rep, metaStore, id_job );\n} catch ( KettleException e ) {\n  logError( \"Repository save failed for id_job=\" + id_job + \": \" + e.getCause(), e );\n  throw e;\n}","preventionTips":["Verify repository write privileges before saving","Watch for DB outages and retry transient failures","Keep output property names/values within column limits","Use a dedicated writable repository account"],"tags":["pdi","repository","database-write","xslt"],"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"}