pentaho/pentaho-kettle · error · KettleException

ERROR_0006_UNABLE_TO_GET_USERS

ERROR_0006_UNABLE_TO_GET_USERS

Error message

UserRoleDelegate.ERROR_0006_UNABLE_TO_GET_USERS

What it means

Security/WebServices failure in UserRoleDelegate.getUsers: the call to list users from the BI Server's user-role service failed. The localized ERROR_0006 message wraps the underlying exception; common causes are missing proxy permissions on the server side.

Solutions

  1. Verify the user has administrative proxy permissions in the BI Server
  2. Check the web service endpoint and credentials configured for the repository connection
Defensive patterns

Strategy: try-catch

Validate before calling

if (repository == null || !repository.isConnected()) {
  throw new IllegalStateException("Repository not connected; getUsers() will fail");
}

Try / catch

try {
  List<IUser> users = userRoleDelegate.getUsers();
} catch (KettleException e) {
  log.error("User list fetch failed: " + e.getCause(), e);
  // possibly re-login and retry once
}

Prevention

When it happens

Trigger: Thrown at plugins/pur/core/src/main/java/org/pentaho/di/repository/pur/UserRoleDelegate.java:297 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13). Data as JSON: /api/errors/423a63aba9813d0b. Report an issue: GitHub.

Appendix: source

Thrown at plugins/pur/core/src/main/java/org/pentaho/di/repository/pur/UserRoleDelegate.java:297

      if ( user != null && user.getName().equals( name ) ) {
        userInfo = UserRoleHelper.convertToUserInfo( user, userRoleWebService.getRolesForUser( user ), rsm );
      }
    } catch ( Exception e ) {
      throw new KettleException( BaseMessages.getString( UserRoleDelegate.class,
          "UserRoleDelegate.ERROR_0005_UNABLE_TO_GET_USER", name ), e ); //$NON-NLS-1$
    }
    return userInfo;
  }

  public List<IUser> getUsers() throws KettleException {
    try {
      if ( hasNecessaryPermissions ) {
        return UserRoleHelper.convertFromProxyPentahoUsers( userRoleSecurityInfo, rsm );
      } else {
        return UserRoleHelper.convertFromNonPentahoUsers( userRoleInfo, rsm );
      }
    } catch ( Exception e ) {
      throw new KettleException( BaseMessages.getString( UserRoleDelegate.class,
          "UserRoleDelegate.ERROR_0006_UNABLE_TO_GET_USERS" ), e ); //$NON-NLS-1$
    }
  }

  public void updateUser( IUser user ) throws KettleException {
    ensureHasPermissions();

    try {
      ProxyPentahoUser proxyUser = UserRoleHelper.convertToPentahoProxyUser( user );
      userRoleWebService.updateUser( proxyUser );
      if ( user instanceof IEEUser ) {
        userRoleWebService.setRoles( proxyUser, UserRoleHelper.convertToPentahoProxyRoles( ( (IEEUser) user )
            .getRoles() ) );
      }
      lookupCache.updateUserInLookupSet( user );
      fireUserRoleListChange();
    } catch ( Exception e ) {
      throw new KettleException( BaseMessages.getString( UserRoleDelegate.class,

View on GitHub (pinned to f3058517a1)