pentaho/pentaho-kettle · error · KettleException

Unexpected error reading step information from the…

Error message

Unexpected error reading step information from the repository

What it means

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.

Solutions

  1. Check repository connectivity and reconnect
  2. Verify r_step_attribute rows exist for the step's id_step
  3. Inspect the wrapped cause for the underlying JDBC/type error
  4. Re-save or re-create the step so attributes are written again with correct types
  5. Align repository plugin/schema versions between server and client

Example fix

null
Defensive patterns

Strategy: try-catch

Validate before calling

if (repo == null || !repo.isConnected()) throw new IllegalStateException("Repository not connected before readRep");

Try / catch

try {
  transMeta = rep.loadTransformation(name, dir, progress, overwrite, versionLabel);
} catch (KettleException e) {
  log.error("Repository read failed for Access Output step", e.getCause());
  // reconnect or reload from file
}

Prevention

When it happens

Trigger: 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.

Common situations: 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.

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/5f15e11b23f45dfd. Report an issue: GitHub.

Appendix: source

Thrown at plugins/ms-access/impl/src/main/java/org/pentaho/di/trans/steps/accessoutput/AccessOutputMeta.java:196

  public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases ) throws KettleException {
    try {
      filename = rep.getStepAttributeString( id_step, "filename" );
      tablename = rep.getStepAttributeString( id_step, "table" );
      tableTruncated = rep.getStepAttributeBoolean( id_step, "truncate" );
      fileCreated = rep.getStepAttributeBoolean( id_step, "create_file" );
      tableCreated = rep.getStepAttributeBoolean( id_step, "create_table" );
      commitSize = (int) rep.getStepAttributeInteger( id_step, "commit_size" );
      String addToResultFiles = rep.getStepAttributeString( id_step, "add_to_result_filenames" );
      if ( Utils.isEmpty( addToResultFiles ) ) {
        addToResultFilenames = true;
      } else {
        addToResultFilenames = rep.getStepAttributeBoolean( id_step, "add_to_result_filenames" );
      }
      doNotOpeNnewFileInit = rep.getStepAttributeBoolean( id_step, "do_not_open_newfile_init" );

    } catch ( Exception e ) {
      throw new KettleException( "Unexpected error reading step information from the repository", e );
    }
  }

  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step ) throws KettleException {
    try {
      rep.saveStepAttribute( id_transformation, id_step, "filename", filename );
      rep.saveStepAttribute( id_transformation, id_step, "table", tablename );
      rep.saveStepAttribute( id_transformation, id_step, "truncate", tableTruncated );
      rep.saveStepAttribute( id_transformation, id_step, "create_file", fileCreated );
      rep.saveStepAttribute( id_transformation, id_step, "create_table", tableCreated );
      rep.saveStepAttribute( id_transformation, id_step, "commit_size", commitSize );
      rep.saveStepAttribute( id_transformation, id_step, "add_to_result_filenames", addToResultFilenames );
      rep.saveStepAttribute( id_transformation, id_step, "do_not_open_newfile_init", doNotOpeNnewFileInit );

    } catch ( Exception e ) {
      throw new KettleException( "Unable to save step information to the repository for id_step=" + id_step, e );
    }
  }

View on GitHub (pinned to f3058517a1)