Can Send Tasks Receive Messages?

Hi, I am not totally unfamiliar with BPMN but I am not an expert either. I stumbled upon a version of the model below and there was no call out that it was wrong.
Interestingly if we run it in the simulator the message will be sent AND the task pauses (if we remove the incoming flows the task finishes right after sending the message).
The spec says that the Send Task is finished immediately after the message is sent so the model seems to violate the spec but the simulator plays along.

I am almost sure the model is incorrect but I’m not THAT experienced in BPMN to make this call. I just wanted some insights from more seasoned people in case there is some specific scenario in which this is supported.

Thank you for any insight.

In my opinion:

  • The model is wrong
  • The linter should complain
  • The simulator should reject this as “Send task cannot receive”

The send task is allowed to have boundary events on it.

I think it’s allowing it because part of “sending” a message is confirmation that the message itself was received (not the outcome of the result of the message), so the system might be trying to capture that. The way you could think about this in a physical-world example is that “Send Voicemail” would be a “Send Message” task, but if the mailbox is full, the receiving system would reply “Sorry, mailbox full” rather than “Voicemail in mailbox”

1 Like