AbstractBpmnActivityBehavior service task does not advance

I noticed a weird issue with the Camunda AbstractBpmnActivityBehavior task. I had deployed a process a few days before and it was working fine. Today, I tried to test it by creating a new instance and the new process instance appeared with running status on Camunda Cockpit and never advances to the next step. Furthermore, tried to debug the flow but the control never reaches in Java execute().

In contrast, I have never seen a similar issue with the JavaDelegate custom tasks.

Does anybody experience a similar issue?

Please refer to the business process and Java implementation.

Business Process:

Java class:

package org.example;

import lombok.extern.slf4j.Slf4j;
import org.camunda.bpm.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior;
import org.camunda.bpm.engine.impl.pvm.delegate.ActivityExecution;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.List;

public class ExternalServiceDelegate extends AbstractBpmnActivityBehavior {

    public void execute(ActivityExecution execution) throws Exception {

        String executionId = execution.getId();
        log.info("Starting external task for executionId={}", executionId);
		String requestType =  (String) execution.getVariable("requestType");

		//Sends request to kafka queue

    public void signal(ActivityExecution execution, String signalName, Object signalData) throws Exception {

        String executionId = execution.getId();
        log.info("Completing external task for executionId={}", executionId);


Platform: Running as a Spring Boot service
Spring-Boot: (v2.3.12.RELEASE)
Camunda Platform: (v7.16.0)
Camunda Platform Spring Boot Starter: (v7.16.0)

I really appreciate any input on this issue.


Can you please take a look? Let me know if you need any additional information.

why do you use extends AbstractBpmnActivityBehavior instead of implements JavaDelegate ?

@Niall ,
I’m using AbstractBpmnActivityBehavior because it is an asynchronous task and it depends on the external task and it may take a while to complete (external task operation) until then this task should be WAITING state. I have referred this Camunda-bpm-example the examples - https://github.com/camunda/camunda-bpm-examples/blob/master/servicetask/service-invocation-asynchronous/src/main/java/org/camunda/quickstart/servicetask/invocation/AsynchronousServiceTask.java

In contrast, JavaDelegate doesn’t have such a mechanism. Please advise.

Update: I fixed the problem by adding these spring properties -