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

  1. Check repository database connectivity and credentials (Test button in the repository connection dialog).
  2. Run the repository upgrade/repair scripts matching your PDI version (r_step_attribute table integrity).
  3. Re-save the transformation into the repository to rewrite the step attributes.
  4. 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

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


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)