Some times when using a Boolean modifier, it will return the error "Cannot Execute Boolean Operation".
This will often happen with multiple Boolean modifiers.
Here is an example file.
What causes this? How can I work around this?
My best guess would be the clue that the console window provides upon opening the file:
"...intersecting group is not in or out".
Because you are trying to union a mesh that has already been 'unioned' (cube.002 is the union object on boolean modifiers 1 and 3) there are no intersections that the boolean can detect, the faces of the object you are trying to union (cube.002) are directly on top of faces that are already there (the cube.002 previously 'unioned').
If there are no intersecting faces then there is nothing to join. The faces of the mesh to be 'unioned' are neither inside the current mesh not outside of it, they are directly on top of it.
I openly admit this is just my theory based on the error message so I could be wrong. I would presume, based on the objects included in the blend file that this is a simple mistake of using 'cube.002' twice as 'cube.001' isn't used in any of the booleans.