org.camunda.bpm.engine.ProcessEngineException: At least one invalid group id provided: id is null

Camunda is able to get the groups and users individually but its not giving the relation.

Here user (Sundar) is associated with 2 groups (Admin and User). I have multiple users in both the groups.

Error in console:

org.camunda.bpm.engine.ProcessEngineException: At least one invalid group id provided: id is null
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_92]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_92]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_92]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_92]
at org.camunda.bpm.engine.impl.util.EnsureUtil.generateException(EnsureUtil.java:334) ~[camunda-engine-7.6.0.jar:7.6.0]
at org.camunda.bpm.engine.impl.util.EnsureUtil.ensureNotNull(EnsureUtil.java:49) ~[camunda-engine-7.6.0.jar:7.6.0]
at org.camunda.bpm.engine.impl.util.EnsureUtil.ensureValidIndividualResourceId(EnsureUtil.java:310) ~[camunda-engine-7.6.0.jar:7.6.0]
at org.camunda.bpm.engine.impl.util.EnsureUtil.ensureValidIndividualResourceIds(EnsureUtil.java:324) ~[camunda-engine-7.6.0.jar:7.6.0]
at org.camunda.bpm.engine.impl.util.EnsureUtil.ensureValidIndividualResourceIds(EnsureUtil.java:318) ~[camunda-engine-7.6.0.jar:7.6.0]
at org.camunda.bpm.engine.impl.IdentityServiceImpl.setAuthentication(IdentityServiceImpl.java:157) ~[camunda-engine-7.6.0.jar:7.6.0]
at org.camunda.bpm.engine.impl.IdentityServiceImpl.setAuthentication(IdentityServiceImpl.java:172) ~[camunda-engine-7.6.0.jar:7.6.0]
at org.camunda.bpm.webapp.impl.security.SecurityActions.authenticateProcessEngine(SecurityActions.java:69) ~[camunda-webapp-7.6.0-classes.jar:7.6.0]
at org.camunda.bpm.webapp.impl.security.SecurityActions.runWithAuthentications(SecurityActions.java:35) ~[camunda-webapp-7.6.0-classes.jar:7.6.0]
at org.camunda.bpm.webapp.impl.security.auth.AuthenticationFilter.doFilter(AuthenticationFilter.java:56) ~[camunda-webapp-7.6.0-classes.jar:7.6.0]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.14.jar:8.5.14]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.14.jar:8.5.14]
at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55) ~[spring-boot-1.5.3.RELEASE.jar:1.5.3.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.14.jar:8.5.14]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.14.jar:8.5.14]
at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:110) ~[spring-boot-actuator-1.5.3.RELEASE.jar:1.5.3.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.14.jar:8.5.14]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.14.jar:8.5.14]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) ~[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.14.jar:8.5.14]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.14.jar:8.5.14]
at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:105) ~[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.14.jar:8.5.14]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.14.jar:8.5.14]
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81) ~[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.14.jar:8.5.14]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.14.jar:8.5.14]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) ~[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.14.jar:8.5.14]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.14.jar:8.5.14]
at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:106) ~[spring-boot-actuator-1.5.3.RELEASE.jar:1.5.3.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.14.jar:8.5.14]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.14.jar:8.5.14]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) ~[tomcat-embed-core-8.5.14.jar:8.5.14]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat-embed-core-8.5.14.jar:8.5.14]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) [tomcat-embed-core-8.5.14.jar:8.5.14]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [tomcat-embed-core-8.5.14.jar:8.5.14]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80) [tomcat-embed-core-8.5.14.jar:8.5.14]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.14.jar:8.5.14]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) [tomcat-embed-core-8.5.14.jar:8.5.14]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799) [tomcat-embed-core-8.5.14.jar:8.5.14]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.14.jar:8.5.14]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861) [tomcat-embed-core-8.5.14.jar:8.5.14]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455) [tomcat-embed-core-8.5.14.jar:8.5.14]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.14.jar:8.5.14]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_92]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_92]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.14.jar:8.5.14]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_92]

My ldif file info :

version: 1

dn: cn=Admin,ou=groups,o=camunda
objectClass: groupOfUniqueNames
objectClass: top
cn: Admin
uniqueMember: cn=Sundar S,ou=users,o=camunda
uniqueMember: cn=Anantha Narayanan,ou=users,o=camunda

dn: ou=users,o=camunda
objectClass: organizationalUnit
objectClass: top
ou: users

dn: cn=Sundar S,ou=users,o=camunda
objectClass: organizationalPerson
objectClass: person
objectClass: inetOrgPerson
objectClass: top
cn: Sundar S
sn: S
uid: sundar
userPassword:: e1NTSEF9MzBsT1RsT2hUOVJYcDU1L0d0V3FoTnZDL1JaYUVIL1kwVmNOckE9P
Q==

dn: cn=User,ou=groups,o=camunda
objectClass: groupOfUniqueNames
objectClass: top
cn: User
uniqueMember: cn=Sundar S,ou=users,o=camunda
uniqueMember: cn=Ashwin Nair,ou=users,o=camunda
uniqueMember: cn=Nirmala Ronanki,ou=users,o=camunda
uniqueMember: cn=Anantha Narayanan,ou=users,o=camunda

dn: cn=Anantha Naraynan,ou=users,o=camunda
objectClass: organizationalPerson
objectClass: person
objectClass: inetOrgPerson
objectClass: top
cn: Anantha Naraynan
sn: Narayanan
uid: anantha
userPassword:: e1NTSEF9YldnUFFnQlFXN09OYmxldlhZY1BSbEdoc3drTEhIdm5YVGNxcWc9P
Q==

dn: cn=Nirmala Ronanki,ou=users,o=camunda
objectClass: organizationalPerson
objectClass: person
objectClass: inetOrgPerson
objectClass: top
cn: Nirmala Ronanki
sn: Ronanki
uid: nirmala
userPassword:: e1NTSEF9aEhSUjF6NE5Malg4MmtNUUk4bTBWWmR5dndCZHVVZFlRbzEyaHc9P
Q==

dn: o=camunda
objectclass: extensibleObject
objectclass: top
objectclass: domain
dc: camunda
o: camunda

dn: ou=groups,o=camunda
objectClass: organizationalUnit
objectClass: top
ou: groups

dn: cn=Ashwin Nair,ou=users,o=camunda
objectClass: organizationalPerson
objectClass: person
objectClass: inetOrgPerson
objectClass: top
cn: Ashwin Nair
sn: Nair
uid: ashwin
userPassword:: e1NTSEF9Y3BTWk9wamxkUVNCRVpYa2pGNGE1SW9rdkE1RDVZWmpiMjdxMUE9P
Q==

Any help is appreciated!

Thanks
Sundar

Apologies for resurrecting this, but since this is the only thread that comes up when googling this Exception, I wanted to document what the problem was for me, in case someone else stumbles upon this in the future.

In my setup, this exception was caused by an incorrect groupIdAttribute on the LdapIdentityProviderPlugin. It needs to be set to a field of the group that can be used as the unique id.

@Bean
public LdapIdentityProviderPlugin ldapIdentityProviderPlugin() {
    LdapIdentityProviderPlugin plugin = new LdapIdentityProviderPlugin();
    [...]
    plugin.setGroupIdAttribute("cn");
    return plugin;
}
1 Like

Thanks for posting a solution :slight_smile: