Compensate an execution of a multi instance subprocess

Hello all, I have 2 questions related to multi instance subprocess (parallel execution).

  1. In my process some of the parallel executions might end successfully and some might end with errors. I added a boundary event (non-interrupting) to catch these. Can I compensate only the ones that fail and not all? If so, how does Camunda identify them? (in the compensation properties tab I can only specify the Suprocess ID as activity reference)

  2. I’m trying to test the above behavior with a simple model like the one below but i’m struggling to send a message to interrupt a specific execution. Can I send a message using POSTMAN to correlate to a specific execution? (assume the multi instance collection is a list: [“element1”, “element2”] and the element variable is “an_element”)

This is the request:
“messageName”: “Interruption”,
“processInstanceId”: “914b5136-95b6-11ea-92ad-1c1bb5896cea”,
“correlationKeys”: {“an_element”: {“value”: “element1”,“type”: “String”}}

This is the response:
“type”: “RestException”,
“message”: “org.camunda.bpm.engine.MismatchingMessageCorrelationException: ENGINE-13031 Cannot correlate a message with name ‘Interruption’ to a single execution. 3 executions match the correlation keys: CorrelationSet [businessKey=null, processInstanceId=914b5136-95b6-11ea-92ad-1c1bb5896cea, processDefinitionId=null, correlationKeys={\n an_element => Untyped value ‘element1’, isTransient = false\n}, localCorrelationKeys=null, tenantId=null, isTenantIdSet=false]”