Local variable scope with parallel gateway

Setting variables on executions locally will keep those variables around until the execution are cleaned up. This can happen in a variety of places, e.g. because the engine decides to merge executions due to parallel paths being merged. In the example here, this is (most likely) what is happening: at point F, the previous executions are merged.

In your example, you’re saying you use a subproces. But do you also store the variables on the execution related to the subprocess?

An alternative could be store store the variables on the process instance level, but make them unique, see Multi-Instance and then waiting for the events for a post where this was done.