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
- 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
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
- 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
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
- AccessInputMeta.Exception.ErrorSavingToRepository
- Unable to save step information to the repository for…
- CloneRowMeta.Exception.UnexpectedErrorReadingStepInfo
- ColumnExistsMeta.Exception.UnableToSaveStepInfo
- ColumnExistsMeta.Exception.UnexpectedErrorReadingStepInfo
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)