Delegate Expression did not resolve

I’m trying to implement a simple example, with a service task that invokes a delegate expression. I’m able to get the task to work when implemented as a Java class, but not as a delegate expression.

I get the following error: ENGINE-02033 Delegate Expression ‘createTweetDelegate’ did neither resolve to an implementation of ‘interface org.camunda.bpm.engine.impl.pvm.delegate.ActivityBehavior’ nor ‘interface org.camunda.bpm.engine.delegate.JavaDelegate’.

The task in review-tweet.bpmn:

<bpmn:serviceTask id="Activity_0n37fh2" name="Publish tweet" camunda:delegateExpression="createTweetDelegate">

I’ve also tried using the full path with the package name, like this:

<bpmn:serviceTask id="Activity_0n37fh2" name="Publish tweet" camunda:delegateExpression="">


public class CreateTweetDelegate implements JavaDelegate {

    private final Logger LOGGER = LoggerFactory.getLogger(CreateTweetDelegate.class.getName());

    public void execute(DelegateExecution execution) throws Exception {
        String content = (String) execution.getVariable("content");"Publishing tweet: " + content);
        AccessToken accessToken = new AccessToken("220324559-YfhutOgjLKsgPFXGGkda4q72rfeEp2nprXZHDTQf", "QmlH4CUdDDav3u2rrE2MQCmWwKfVHkcc8qlGpu6SMn0uD");
        Twitter twitter = new TwitterFactory().getInstance();
        twitter.setOAuthConsumer("XSQGUIOwiOs8p55NMijlObpPu", "ZXDVbURd1WMUFBmygQ4Je8PPR0gkaKwczkgQ6YfgPfF0MYnIzY");


public class CamundaApplication {
  public static void main(String... args) {, args);

The unit test that fails:

public class ProcessJUnitTest {
  @Deployment(resources = "review-tweet.bpmn")
  public void testHappyPath() {
    // Create a HashMap to put in variables for the process instance
    Map<String, Object> variables = new HashMap<String, Object>();
    int randomNumber = (int)Math.floor(Math.random()*(10000));
    variables.put("content", "Exercise 4 test - D" + randomNumber);
    variables.put("approved", true);
    // Start process with Java API and variables
    ProcessInstance processInstance = runtimeService().startProcessInstanceByKey("review-tweet", variables);
    // Make assertions on the process instance


Hi @Danielle_H ,

Expressions should follow the syntax: #{<YOUR_EXPRESSION>}

<bpmn:serviceTask id="Activity_0n37fh2" name="Publish tweet" camunda:delegateExpression="#{createTweetDelegate}">

1 Like

When I do that, I get the error: Unknown property used in expression: #{createTweetDelegate}. Cause: Cannot resolve identifier ‘createTweetDelegate’

Ah, I solved it. It was working on a manually-started process, just not in the unit test. I mocked the Java delegate in the test, and now it passes.

1 Like