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
- Check the wrapped cause for the underlying repository/database error and verify repository connectivity.
- Confirm the repository schema version matches the PDI version; run the repository upgrade script if needed.
- Inspect r_step_attribute rows for the reported id_step for corruption; re-save the transformation to rewrite them.
- 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
- Run repository upgrade scripts after every PDI upgrade
- Verify repository connectivity before opening transformations
- Avoid killing Spoon mid-save, which can leave corrupt attribute rows
- Back up the repository database regularly
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
- AggregateRowsMeta.Exception.UnexpectedErrorWhileReadingStepInfo
- Unexpected error reading step information from the…
- Unexpected error reading step information from the…
- XsdValidatorMeta.Exception.UnexpectedErrorInReadingStepInfo
- AddSequenceMeta.Exception.UnableToReadStepInfo
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)