pentaho/pentaho-kettle · error · KettleException
LDAPInputMeta.Exception.ErrorReadingRepository
LDAPInputMeta.Exception.ErrorReadingRepository
Error message
LDAPInputMeta.Exception.ErrorReadingRepository
What it means
Thrown while loading LDAP Input step attributes from the Pentaho repository (readRep path): any repository access or attribute-read failure is wrapped in this KettleException with the cause chained. It indicates the step metadata could not be read from the repository database.
Solutions
- Check repository database connectivity and credentials (Test button in the repository connection dialog).
- Run the repository upgrade/repair scripts matching your PDI version (r_step_attribute table integrity).
- Re-save the transformation into the repository to rewrite the step attributes.
- Review the chained cause for the underlying SQL/repository error code.
Defensive patterns
Strategy: try-catch
Validate before calling
// before loading from repository
if (!rep.connect("test").isConnected()) throw new IllegalStateException("Repository is not reachable"); Try / catch
try { meta.readRep(rep, objectId, databases, metaStore); } catch (KettleException e) { logError("Repository read failed: " + e.getCause().getMessage(), e); } Prevention
- Test repository connectivity before opening transformations
- Apply repository schema upgrade scripts after every PDI upgrade
- Re-save transformations after repository restores to rebuild step attributes
When it happens
Trigger: readRep()/loadStepAttributes querying rep.getStepAttributeString(id_step, ...) throws — repository connection down, schema/tables missing or corrupted, or id_step not found in the repository tables.
Common situations: Repository database unreachable (DB restarted, network issue), repository schema version mismatch after a PDI upgrade, orphaned step rows referencing a deleted 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
- ElasticSearchBulkMeta.Exception.ErrorReadingRepository
- ElasticSearchBulkMeta.Exception.ErrorSavingToRepository
- FileExistsMeta.Exception.UnableToSaveStepInfo
- FileExistsMeta.Exception.UnexpectedErrorReadingStepInfo
- GetPreviousRowFieldMeta.Exception.UnexpectedErrorInReadingSt…
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/e185dc9faad76ec1.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/ldap/impl/src/main/java/org/pentaho/di/trans/steps/ldapinput/LDAPInputMeta.java:819
field.setType( ValueMetaFactory.getIdForValueMeta( rep.getStepAttributeString( id_step, i, "field_type" ) ) );
field.setFormat( rep.getStepAttributeString( id_step, i, "field_format" ) );
field.setCurrencySymbol( rep.getStepAttributeString( id_step, i, "field_currency" ) );
field.setDecimalSymbol( rep.getStepAttributeString( id_step, i, "field_decimal" ) );
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( LDAPInputField.getTrimTypeByCode( rep.getStepAttributeString(
id_step, i, "field_trim_type" ) ) );
field.setRepeated( rep.getStepAttributeBoolean( id_step, i, "field_repeat" ) );
inputFields[i] = field;
}
searchScope =
getSearchScopeByCode( Const.NVL(
rep.getStepAttributeString( id_step, "searchScope" ),
getSearchScopeCode( LDAPConnection.SEARCH_SCOPE_SUBTREE_SCOPE ) ) );
} catch ( Exception e ) {
throw new KettleException(
BaseMessages.getString( PKG, "LDAPInputMeta.Exception.ErrorReadingRepository" ), e );
}
}
public static String getSearchScopeDesc( int i ) {
if ( i < 0 || i >= searchScopeDesc.length ) {
return searchScopeDesc[0];
}
return searchScopeDesc[i];
}
public static int getSearchScopeByDesc( String tt ) {
if ( tt == null ) {
return 0;
}
for ( int i = 0; i < searchScopeDesc.length; i++ ) {
if ( searchScopeDesc[i].equalsIgnoreCase( tt ) ) {View on GitHub (pinned to f3058517a1)