Subprocess, KAFKA, external system No process definition or execution matches the parameters


Getting error:

org.camunda.bpm.engine.MismatchingMessageCorrelationException: Cannot correlate message ‘MsgReceiveWatermark’: No process definition or execution matches the parameters
at org.camunda.bpm.engine.impl.cmd.CorrelateMessageCmd.execute( ~[camunda-engine-7.15.0.jar!/:7.15.0]
at org.camunda.bpm.engine.impl.cmd.CorrelateMessageCmd.execute( ~[camunda-engine-7.15.0.jar!/:7.15.0]
at org.camunda.bpm.engine.impl.interceptor.CommandExecutorImpl.execute( ~[camunda-engine-7.15.0.jar!/:7.15.0]
at org.camunda.bpm.engine.impl.interceptor.CommandContextInterceptor.execute( ~[camunda-engine-7.15.0.jar!/:7.15.0]

Please help :frowning:

PlayArtifactImageProcess.bpmn (3.8 KB)
PlayPacketsProcess.bpmn (6.3 KB)

Hi @Adolis_Pali

It looks like you are doing this with Camunda 7? I’ve moved it into a Camunda 7 topic for better visibility.

If this is with Camunda 8, please move it back.

Can you please give more information about what you are doing and what happens.

I’m guessing here, but it looks like messages are going out to Kafka, and you are getting an error when a unit of work is returned from Kafka - is that correct?


Thanks for your response, yes you are right it’s Camunda 7. External system suppose to transform images, at the point “Send to jp2 image transformer” I am sending message to external system via kafka. After some time transformer finishes transform image and sends back result via kafka to “Waiting jp2 transformation response”, and here I am calling:
and getting error

Hi @Adolis_Pali,

as you are correlating against the business key, I assume that the Kafka consumer sends the correlation command before the receive task is commited to the database.

I don’t know if you can buffer and retry the correlation in you Kafka consumer. If yes I would go this way.

An alternative is the to model the PlayArtifacts process in a way that it commits the receive task in parallel with sending the message and mark the message sending with asynchrous before. But this makes the process model much harder to understand.

Hope this helps, Ingo

1 Like

Thank you!