{"record":{"id":"6770acb06ff68aae","repo":"pentaho/pentaho-kettle","slug":"unable-to-save-step-information-to-the-repository-for-id-6770ac","errorCode":null,"errorMessage":"Unable to save step information to the repository for id_step=","messagePattern":"Unable to save step information to the repository for id_step=","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/json/core/src/main/java/org/pentaho/di/trans/steps/jsonoutput/JsonOutputMeta.java","lineNumber":445,"sourceCode":"      rep.saveStepAttribute( id_transformation, id_step, \"file_name\", fileName );\n      rep.saveStepAttribute( id_transformation, id_step, \"file_extention\", extension );\n      rep.saveStepAttribute( id_transformation, id_step, \"file_append\", fileAppended );\n      rep.saveStepAttribute( id_transformation, id_step, \"file_add_stepnr\", stepNrInFilename );\n      rep.saveStepAttribute( id_transformation, id_step, \"file_add_partnr\", partNrInFilename );\n      rep.saveStepAttribute( id_transformation, id_step, \"file_add_date\", dateInFilename );\n      rep.saveStepAttribute( id_transformation, id_step, \"file_add_time\", timeInFilename );\n      rep.saveStepAttribute( id_transformation, id_step, \"create_parent_folder\", createparentfolder );\n      rep.saveStepAttribute( id_transformation, id_step, \"DoNotOpenNewFileInit\", DoNotOpenNewFileInit );\n      rep.saveStepAttribute( id_transformation, id_step, \"file_servlet_output\", servletOutput );\n\n      for ( int i = 0; i < outputFields.length; i++ ) {\n        JsonOutputField field = outputFields[i];\n\n        rep.saveStepAttribute( id_transformation, id_step, i, \"field_name\", field.getFieldName() );\n        rep.saveStepAttribute( id_transformation, id_step, i, \"field_element\", field.getElementName() );\n      }\n    } catch ( Exception e ) {\n      throw new KettleException( \"Unable to save step information to the repository for id_step=\" + id_step, e );\n    }\n  }\n\n  public String buildFilename( String filename, Date date ) {\n    SimpleDateFormat daf = new SimpleDateFormat();\n\n    // Replace possible environment variables...\n    StringBuilder filenameOutput = new StringBuilder( filename );\n\n    if ( dateInFilename ) {\n      daf.applyPattern( BaseFileOutputMeta.DEFAULT_DATE_FORMAT );\n      String d = daf.format( date );\n      filenameOutput.append( '_' ).append( d );\n    }\n    if ( timeInFilename ) {\n      daf.applyPattern( BaseFileOutputMeta.DEFAULT_TIME_FORMAT );\n      String t = daf.format( date );\n      filenameOutput.append( '_' ).append( t );","sourceCodeStart":427,"sourceCodeEnd":463,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/json/core/src/main/java/org/pentaho/di/trans/steps/jsonoutput/JsonOutputMeta.java#L427-L463","documentation":"JsonOutputMeta.saveRep persists the step's settings to the Kettle repository via rep.saveStepAttribute; any exception is wrapped as 'Unable to save step information to the repository for id_step=<id>'. It means saving this step's metadata (including its output field grid) failed at the repository layer.","triggerScenarios":"Saving a transformation to a database/enterprise repository where saveStepAttribute throws — connection loss, transaction failure, read-only repository, or constraint violations in the attribute tables.","commonSituations":"Repository DB read-only or out of space; connection dropped mid-save; insufficient user permissions on the repository; repository schema mismatch after a PDI version upgrade.","solutions":["Check repository database connectivity, disk space, and write permissions for your repository user.","Retry the save after reconnecting; check for locks or stale sessions in the repository.","Verify the repository schema matches your PDI version (run the repository upgrade/repair SQL).","As a workaround, save the transformation as a local .ktr file, fix the repository, then re-save."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try { repository.save(transMeta, \"desc\", null, true); } catch (KettleException e) {\n  if (e.getMessage().startsWith(\"Unable to save step information to the repository\")) {\n    log.error(\"Repository save failed; export to .ktr as backup and check DB\", e);\n  }\n  throw e;\n}","preventionTips":["Save a local .ktr copy before saving to the repository.","Ensure repository users have write permissions and DB has free space.","Keep PDI client and repository schema versions aligned."],"tags":["pdi","repository","database-write","kettle","metadata"],"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"}