Catching message event not triggered

Hello all,

This question might not be cutting edge but I could not find any solution that forum or tutorials. So I give it a shot here.

I am working with Camunda + Spring Boot Starter and have the following process (showing just relevant part)

My aim is very simple, to receive an intermediary message event after multiple event gateway and continue with service / user task. I use a rest controller to receive various calls from other systems, and trigger/propogate the information to process engine.

MessageCorrelationResult ecmMessageArrived = runtimeService.createMessageCorrelation(“EcmMessageArrived”)
.processInstanceBusinessKey(uuid)
.setVariables(variables)
.correlateWithResult();

The catching message event definition is as follows:

The problem is that the message never arrives / propagates. And the call returns the error

org.camunda.bpm.engine.MismatchingMessageCorrelationException: Cannot correlate message ‘EcmMessageArrived’:
No process definition or execution matches the parameters

The option to receive intermediate message events through rest-client of Camunda as shown in BPMN process communication is known to me but I want to trigger them from our rest controller (component in Spring) and it must be possible. What am I missing, what is the way to go here?

Thanks in advance for any any ideas…

This part of the message might be where the problem is - if you add this the value of uuid must match the value of the business key in the waiting process instance. Is that the case?

Sorry, I forgot to clarify it before. Yes it definitely is.

So,
You have a process instance that has started in which the business key is set to a specific UUID.
You have a token waiting at the event based gateway.

You’re sending the message via the Java API. how exactly are you sending it?

Hi Niall, we receive usual rest calls through our rest controller and trigger message correlation on the runtime service, hence implicitly “sending” messages.

Anyway, your previous assumption proved to be correct. I attached a listener to the message catch event and saw that it was called albeit there is the mentioned error. I crosschecked our web API that sends the rest call and apparently the “uuid” formats differed between web API and the one used for business key.

Without

.processInstanceBusinessKey(uuid)

or with the correct “uuid” the message propagates correctly. So the problem is solved. Thanks.

p.s. I must say though that the error message was misleading. The problem was simply that no process instance with that business key could be found.

1 Like