{"record":{"id":"5f15e11b23f45dfd","repo":"pentaho/pentaho-kettle","slug":"unexpected-error-reading-step-information-from-the-5f15e1","errorCode":null,"errorMessage":"Unexpected error reading step information from the repository","messagePattern":"Unexpected error reading step information from the repository","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":196,"sourceCode":"\n  public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases ) throws KettleException {\n    try {\n      filename = rep.getStepAttributeString( id_step, \"filename\" );\n      tablename = rep.getStepAttributeString( id_step, \"table\" );\n      tableTruncated = rep.getStepAttributeBoolean( id_step, \"truncate\" );\n      fileCreated = rep.getStepAttributeBoolean( id_step, \"create_file\" );\n      tableCreated = rep.getStepAttributeBoolean( id_step, \"create_table\" );\n      commitSize = (int) rep.getStepAttributeInteger( id_step, \"commit_size\" );\n      String addToResultFiles = rep.getStepAttributeString( id_step, \"add_to_result_filenames\" );\n      if ( Utils.isEmpty( addToResultFiles ) ) {\n        addToResultFilenames = true;\n      } else {\n        addToResultFilenames = rep.getStepAttributeBoolean( id_step, \"add_to_result_filenames\" );\n      }\n      doNotOpeNnewFileInit = rep.getStepAttributeBoolean( id_step, \"do_not_open_newfile_init\" );\n\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  }","sourceCodeStart":178,"sourceCodeEnd":214,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/ms-access/impl/src/main/java/org/pentaho/di/trans/steps/accessoutput/AccessOutputMeta.java#L178-L214","documentation":"AccessOutputMeta.readRep reads the step's settings from a repository. Any failure in the rep.getStepAttribute* calls is wrapped in a KettleException(\"Unexpected error reading step information from the repository\"). This indicates the repository lookup or type conversion for the step attributes failed.","triggerScenarios":"Loading a transformation from a repository where the step's attribute rows are missing, have unexpected value types (e.g. boolean attribute stored non-parseable), or the repository connection drops mid-read.","commonSituations":"Repository rows manually deleted or edited; repository schema version mismatch with the PDI client; corrupted r_step_attribute values; network interruption while opening the transformation.","solutions":["Check repository connectivity and reconnect","Verify r_step_attribute rows exist for the step's id_step","Inspect the wrapped cause for the underlying JDBC/type error","Re-save or re-create the step so attributes are written again with correct types","Align repository plugin/schema versions between server and client"],"exampleFix":"null","handlingStrategy":"try-catch","validationCode":"if (repo == null || !repo.isConnected()) throw new IllegalStateException(\"Repository not connected before readRep\");","typeGuard":null,"tryCatchPattern":"try {\n  transMeta = rep.loadTransformation(name, dir, progress, overwrite, versionLabel);\n} catch (KettleException e) {\n  log.error(\"Repository read failed for Access Output step\", e.getCause());\n  // reconnect or reload from file\n}","preventionTips":["Avoid manually editing repository attribute tables","Keep repository schema and PDI client versions aligned","Reconnect after network interruptions before loading transformations","Regularly back up the repository database"],"tags":["repository","persistence","jdbc","pdi"],"backgroundTag":"database-query-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"}