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
- Verify the user has administrative proxy permissions in the BI Server
- 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
- Verify repository connection state before listing.
- Reconnect on stale sessions.
- Ensure the account has security-read permissions.
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)