{"record":{"id":"f45d4b4b3b9fe489","repo":"pentaho/pentaho-kettle","slug":"unable-to-save-step-information-to-the-repository-for-id-f45d4b","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/ms-access/impl/src/main/java/org/pentaho/di/trans/steps/accessoutput/AccessOutputMeta.java","lineNumber":212,"sourceCode":"\n    } catch ( Exception e ) {\n      throw new KettleException( \"Unexpected error reading step information from the repository\", e );\n    }\n  }\n\n  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step ) throws KettleException {\n    try {\n      rep.saveStepAttribute( id_transformation, id_step, \"filename\", filename );\n      rep.saveStepAttribute( id_transformation, id_step, \"table\", tablename );\n      rep.saveStepAttribute( id_transformation, id_step, \"truncate\", tableTruncated );\n      rep.saveStepAttribute( id_transformation, id_step, \"create_file\", fileCreated );\n      rep.saveStepAttribute( id_transformation, id_step, \"create_table\", tableCreated );\n      rep.saveStepAttribute( id_transformation, id_step, \"commit_size\", commitSize );\n      rep.saveStepAttribute( id_transformation, id_step, \"add_to_result_filenames\", addToResultFilenames );\n      rep.saveStepAttribute( id_transformation, id_step, \"do_not_open_newfile_init\", doNotOpeNnewFileInit );\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 void check( List<CheckResultInterface> remarks, TransMeta transMeta, StepMeta stepMeta,\n    RowMetaInterface prev, String[] input, String[] output, RowMetaInterface info, VariableSpace space,\n    Repository repository, IMetaStore metaStore ) {\n\n    // TODO: add file checking in case we don't create a table.\n\n    // See if we have input streams leading to this step!\n    if ( input.length > 0 ) {\n      CheckResult cr =\n        new CheckResult( CheckResult.TYPE_RESULT_OK, BaseMessages.getString(\n          PKG, \"AccessOutputMeta.CheckResult.ExpectedInputOk\" ), stepMeta );\n      remarks.add( cr );\n    } else {\n      CheckResult cr =\n        new CheckResult( CheckResult.TYPE_RESULT_ERROR, BaseMessages.getString(","sourceCodeStart":194,"sourceCodeEnd":230,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/ms-access/impl/src/main/java/org/pentaho/di/trans/steps/accessoutput/AccessOutputMeta.java#L194-L230","documentation":"AccessOutputMeta.saveRep persists the step settings (filename, tablename, create_table, commit_size, add_to_result_filenames, do_not_open_newfile_init). Any exception in the saveStepAttribute calls is wrapped in KettleException(\"Unable to save step information to the repository for id_step=\"). It means the repository write for this step failed.","triggerScenarios":"Saving a transformation when the repository connection is broken, the user lacks write permission, the repository is read-only, or a JDBC constraint/IO error occurs on r_step_attribute writes.","commonSituations":"Repository database restarted between opening and saving; insufficient DB grants; read-only standby repository; storage quota exceeded on the repository DB.","solutions":["Verify the repository connection and reconnect if needed","Confirm the repository user has INSERT/UPDATE rights","Retry the save after fixing connectivity","Inspect the wrapped cause for the actual JDBC error","Check repository DB logs/disk space for storage failures"],"exampleFix":"null","handlingStrategy":"try-catch","validationCode":"if (!repo.isConnected()) throw new IllegalStateException(\"Repository not connected before save\");\n// and confirm writable: run a small test saveStepAttribute or check user grants","typeGuard":null,"tryCatchPattern":"try {\n  transMeta.save(rep, comment, null);\n} catch (KettleException e) {\n  log.error(\"saveRep failed for id_step=\" + e.getMessage(), e.getCause());\n  repo.disconnect(); repo.connect(user, pass);\n  transMeta.save(rep, comment, null); // retry once\n}","preventionTips":["Verify repository write grants for all designers","Watch DB disk space and connection limits","Use read-only repos only for reading, never save","Retry with backoff on transient connectivity errors"],"tags":["repository","persistence","jdbc","pdi"],"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"}