{"record":{"id":"082810c58fb775fb","repo":"pentaho/pentaho-kettle","slug":"accessinputmeta-exception-errorsavingtorepository","errorCode":"AccessInputMeta.Exception.ErrorSavingToRepository","errorMessage":"AccessInputMeta.Exception.ErrorSavingToRepository","messagePattern":"AccessInputMeta\\.Exception\\.ErrorSavingToRepository","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/ms-access/impl/src/main/java/org/pentaho/di/trans/steps/accessinput/AccessInputMeta.java","lineNumber":1092,"sourceCode":"        rep.saveStepAttribute( id_transformation, id_step, i, \"field_decimal\", field.getDecimalSymbol() );\n        rep.saveStepAttribute( id_transformation, id_step, i, \"field_group\", field.getGroupSymbol() );\n        rep.saveStepAttribute( id_transformation, id_step, i, \"field_length\", field.getLength() );\n        rep.saveStepAttribute( id_transformation, id_step, i, \"field_precision\", field.getPrecision() );\n        rep.saveStepAttribute( id_transformation, id_step, i, \"field_trim_type\", field.getTrimTypeCode() );\n        rep.saveStepAttribute( id_transformation, id_step, i, \"field_repeat\", field.isRepeated() );\n\n      }\n      rep.saveStepAttribute( id_transformation, id_step, \"shortFileFieldName\", shortFileFieldName );\n      rep.saveStepAttribute( id_transformation, id_step, \"pathFieldName\", pathFieldName );\n      rep.saveStepAttribute( id_transformation, id_step, \"hiddenFieldName\", hiddenFieldName );\n      rep.saveStepAttribute(\n        id_transformation, id_step, \"lastModificationTimeFieldName\", lastModificationTimeFieldName );\n      rep.saveStepAttribute( id_transformation, id_step, \"uriNameFieldName\", uriNameFieldName );\n      rep.saveStepAttribute( id_transformation, id_step, \"rootUriNameFieldName\", rootUriNameFieldName );\n      rep.saveStepAttribute( id_transformation, id_step, \"extensionFieldName\", extensionFieldName );\n      rep.saveStepAttribute( id_transformation, id_step, \"sizeFieldName\", sizeFieldName );\n    } catch ( Exception e ) {\n      throw new KettleException( BaseMessages.getString(\n        PKG, \"AccessInputMeta.Exception.ErrorSavingToRepository\", \"\" + id_step ), e );\n    }\n  }\n\n  public FileInputList getFiles( Bowl bowl, VariableSpace space ) {\n    return FileInputList.createFileList(\n      bowl, space, fileName, fileMask, excludeFileMask, fileRequired, includeSubFolderBoolean() );\n  }\n\n  private boolean[] includeSubFolderBoolean() {\n    int len = fileName.length;\n    boolean[] includeSubFolderBoolean = new boolean[len];\n    for ( int i = 0; i < len; i++ ) {\n      includeSubFolderBoolean[i] = YES.equalsIgnoreCase( includeSubFolders[i] );\n    }\n    return includeSubFolderBoolean;\n  }\n","sourceCodeStart":1074,"sourceCodeEnd":1110,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/ms-access/impl/src/main/java/org/pentaho/di/trans/steps/accessinput/AccessInputMeta.java#L1074-L1110","documentation":"AccessInputMeta.saveRep wraps any failure while persisting the Access Input step's field-name attributes (filename, table, row-limit, output field names like uriNameFieldName, sizeFieldName, etc.) into a KettleException. It is thrown because one of the rep.saveStepAttribute calls failed, with the original cause attached.","triggerScenarios":"Calling saveRep on a repository where the underlying JDBC write fails: broken DB connection, read-only repository, missing repository permissions, or corrupted r_step_attribute table while saving step id_step.","commonSituations":"Saving a transformation to a repository that went down mid-session; repository schema upgrade mismatch; user lacks write rights to the repository; network drop during save.","solutions":["Check the repository database is reachable and the connection is alive","Verify the repository user has write (INSERT/UPDATE) privileges on step attribute tables","Retry the save after reconnecting to the repository","Inspect the wrapped cause (KettleException) for the actual JDBC error","Run the repository repair/check tools if the schema is inconsistent"],"exampleFix":"// before\ntry {\n  transMeta.save(rep, metaDescription, null);\n} catch (Exception e) { log.error(\"save failed\", e); }\n// after\ntry {\n  transMeta.save(rep, metaDescription, null);\n} catch (KettleException e) {\n  if (e.getCause() != null) log.error(\"repository save failed\", e.getCause());\n  // reconnect or re-login to the repository, then retry\n  repo.disconnect(); repo.connect(username, password);\n  transMeta.save(rep, metaDescription, null);\n}","handlingStrategy":"try-catch","validationCode":"// before save\nif (!repo.isConnected()) throw new IllegalStateException(\"Repository not connected\");\ntransMeta.steps().forEach(s -> { if (s.getID() == null) log.warn(\"step not persisted yet: \" + s.getName()); });","typeGuard":null,"tryCatchPattern":"try {\n  transMeta.save(rep, comment, null);\n} catch (KettleException e) {\n  Throwable cause = e.getCause();\n  log.error(\"Step save failed for id_step; cause=\" + (cause != null ? cause.getMessage() : \"?\"), e);\n  // reconnect and retry\n}","preventionTips":["Keep the repository connection alive before long editing sessions","Grant repository users write privileges","Monitor repository DB health and quota","Retry saves with backoff on transient JDBC 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"}