It looks like you've found a bug in C2. You need to simplify this into an example CAPX to upload, but the issue seems to be, having two obstacle overlap tests, where you are testing two different objects to the same object, the second one is not detected.
If you switch the order in your example, (check obstacle2 first), it works for #2, but then fails for #1.
To get around this for now, I found that if you switch the order around, check for 'animal' overlapping #1 or 'animal' overlapping #2, it does work.
I think the technical issue is that, the current implementation picks the 'animal' that is overlapping the first checked obstacle, but holds on to that picking list, which would be empty, since no animal overlaps in the first case, then the OR is run to check the second obstacle, but there are no animals picked now, so the whole thing fails!