I am using spring-boot-starter-camunda-sdk. I recently tried upgrading from 8.5.0 to 8.6.18
Using version 8.6.18 I get a ConcurrentModificationException when the application is starting up. This happens while the Zeebe client is initialising the JobWorkers and the exception means that none of the JobWorkers are started.
The application does start successfully after this exception, but none of the JobWorkers are have started.
spring-boot:3.4.2
spring-boot-starter-camunda-sdk:8.6.18
I can’t figure out what the cause of this ConcurrentModificationException is. I’m assuming there is a conflicting version of something that is causing an issue.
I’m at a loss so just wanted to throw the question out there and see if anyone else has seen this error before? Or has any ideas on how to debug further?
2025-07-22 14:34:27,644 INFO [SimpleAsyncTaskExecutor-19] [] i.c.z.s.c.a.p.ZeebeWorkerAnnotationProcessor: Configuring 1 Zeebe worker(s) of bean 'testWorker1': [...]
2025-07-22T14:34:27.650837133Z 2025-07-22 14:34:27,650 INFO [SimpleAsyncTaskExecutor-19] [] i.c.z.s.c.a.p.ZeebeWorkerAnnotationProcessor: Configuring 1 Zeebe worker(s) of bean 'testWorker2': [...]
2025-07-22T14:34:27.651521420Z 2025-07-22 14:34:27,651 INFO [main] [] o.s.b.StartupInfoLogger: Started Application in 23.279 seconds (process running for 31.523)
2025-07-22T14:34:27.658701949Z 2025-07-22 14:34:27,657 INFO [SimpleAsyncTaskExecutor-19] [] i.c.z.s.c.a.p.ZeebeWorkerAnnotationProcessor: Configuring 11 Zeebe worker(s) of bean 'testWorker3': [...]
2025-07-22T14:34:27.659640121Z 2025-07-22 14:34:27,659 INFO [SimpleAsyncTaskExecutor-19] [] i.c.z.s.c.a.p.ZeebeWorkerAnnotationProcessor: Configuring 4 Zeebe worker(s) of bean 'testWorker4': [...]
2025-07-22T14:34:27.661819881Z Exception in thread "SimpleAsyncTaskExecutor-19" java.util.ConcurrentModificationException
2025-07-22T14:34:27.662137651Z at java.base/java.util.HashMap.forEach(HashMap.java:1432)
2025-07-22T14:34:27.662169036Z at io.camunda.zeebe.spring.client.annotation.processor.ZeebeAnnotationProcessorRegistry.processBeans(ZeebeAnnotationProcessorRegistry.java:71)
2025-07-22T14:34:27.662172062Z at io.camunda.zeebe.spring.client.annotation.processor.ZeebeAnnotationProcessorRegistry.startAll(ZeebeAnnotationProcessorRegistry.java:62)
2025-07-22T14:34:27.662175068Z at io.camunda.zeebe.spring.client.event.ZeebeClientEventListener.handleStart(ZeebeClientEventListener.java:32)
2025-07-22T14:34:27.662177352Z at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
2025-07-22T14:34:27.662179328Z at java.base/java.lang.reflect.Method.invoke(Method.java:580)
2025-07-22T14:34:27.662182490Z at org.springframework.context.event.ApplicationListenerMethodAdapter.doInvoke(ApplicationListenerMethodAdapter.java:382)
2025-07-22T14:34:27.662184578Z at org.springframework.context.event.ApplicationListenerMethodAdapter.processEvent(ApplicationListenerMethodAdapter.java:254)
2025-07-22T14:34:27.662187238Z at org.springframework.context.event.ApplicationListenerMethodAdapter.onApplicationEvent(ApplicationListenerMethodAdapter.java:173)
2025-07-22T14:34:27.662190365Z at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:185)
2025-07-22T14:34:27.662192201Z at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:178)
2025-07-22T14:34:27.662194997Z at org.springframework.context.event.SimpleApplicationEventMulticaster.lambda$multicastEvent$0(SimpleApplicationEventMulticaster.java:148)
2025-07-22T14:34:27.662196956Z at java.base/java.lang.Thread.run(Thread.java:1583)