pentaho/pentaho-kettle · error · KettleException

AccessInputMeta.Exception.ErrorReadingRepository

AccessInputMeta.Exception.ErrorReadingRepository

Error message

AccessInputMeta.Exception.ErrorReadingRepository

What it means

KettleException thrown by AccessInputMeta.readRep when reading the step's attributes from the Pentaho repository fails with any exception. The localized 'Error reading repository' message wraps the underlying error, indicating the Access Input step's stored metadata could not be loaded.

Solutions

  1. Check the wrapped cause for the underlying repository/database error and verify repository connectivity.
  2. Confirm the repository schema version matches the PDI version; run the repository upgrade script if needed.
  3. Inspect r_step_attribute rows for the reported id_step for corruption; re-save the transformation to rewrite them.
  4. If rows are unrecoverable, re-create the Access Input step in Spoon and re-save the transformation.
Defensive patterns

Strategy: try-catch

Try / catch

try { meta.readRep( rep, metaStore, id_step, databases ); } catch ( KettleException e ) { logError( "Repository read failed for step " + id_step + ": " + e.getCause(), e ); /* re-create step or repair repository */ }

Prevention

When it happens

Trigger: readRep(Repository, IMetaStore, ObjectId id_step, ...) catching Exception: repository DB connection failure, missing/corrupt r_step_attribute rows for id_step, schema mismatch after a version upgrade, or attribute values that fail conversion.

Common situations: Repository schema not upgraded after a PDI upgrade; orphaned step rows after partial deletion; repository DB outage or dropped connection during load; corrupted attribute rows from an interrupted save.

Understand the failure class

Background: Database query failed: Internal Server Error 500s wrapping SQL, Prisma, and connection failures — what to check first — this error's family across 16 libraries.

Related errors


AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13). Data as JSON: /api/errors/17a481800b79216e. Report an issue: GitHub.

Appendix: source

Thrown at plugins/ms-access/impl/src/main/java/org/pentaho/di/trans/steps/accessinput/AccessInputMeta.java:1037

        field.setGroupSymbol( rep.getStepAttributeString( id_step, i, "field_group" ) );
        field.setLength( (int) rep.getStepAttributeInteger( id_step, i, "field_length" ) );
        field.setPrecision( (int) rep.getStepAttributeInteger( id_step, i, "field_precision" ) );
        field.setTrimType( AccessInputField.getTrimTypeByCode( rep.getStepAttributeString(
          id_step, i, "field_trim_type" ) ) );
        field.setRepeated( rep.getStepAttributeBoolean( id_step, i, "field_repeat" ) );

        inputFields[i] = field;
      }
      shortFileFieldName = rep.getStepAttributeString( id_step, "shortFileFieldName" );
      pathFieldName = rep.getStepAttributeString( id_step, "pathFieldName" );
      hiddenFieldName = rep.getStepAttributeString( id_step, "hiddenFieldName" );
      lastModificationTimeFieldName = rep.getStepAttributeString( id_step, "lastModificationTimeFieldName" );
      uriNameFieldName = rep.getStepAttributeString( id_step, "uriNameFieldName" );
      rootUriNameFieldName = rep.getStepAttributeString( id_step, "rootUriNameFieldName" );
      extensionFieldName = rep.getStepAttributeString( id_step, "extensionFieldName" );
      sizeFieldName = rep.getStepAttributeString( id_step, "sizeFieldName" );
    } catch ( Exception e ) {
      throw new KettleException(
        BaseMessages.getString( PKG, "AccessInputMeta.Exception.ErrorReadingRepository" ), e );
    }
  }

  @Override
  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step ) throws KettleException {
    try {
      rep.saveStepAttribute( id_transformation, id_step, "include", includeFilename );
      rep.saveStepAttribute( id_transformation, id_step, "include_field", filenameField );
      rep.saveStepAttribute( id_transformation, id_step, "tablename", includeTablename );
      rep.saveStepAttribute( id_transformation, id_step, "tablename_field", tablenameField );
      rep.saveStepAttribute( id_transformation, id_step, "rownum", includeRowNumber );
      rep.saveStepAttribute( id_transformation, id_step, "isaddresult", isaddresult );
      rep.saveStepAttribute( id_transformation, id_step, "filefield", filefield );
      rep.saveStepAttribute( id_transformation, id_step, "filename_Field", dynamicFilenameField );
      rep.saveStepAttribute( id_transformation, id_step, "rownum_field", rowNumberField );
      rep.saveStepAttribute( id_transformation, id_step, "limit", rowLimit );
      rep.saveStepAttribute( id_transformation, id_step, "table_name", TableName );

View on GitHub (pinned to f3058517a1)