Subdivision Surface modifier above level 1 subdivide causes boolean modifier to break
You basically want to make sure that the vertices, edges and faces of the cutting object never sit directly on top of those of the object cutted into. Try scaling or moving the cutting object by only a few micro- or millimeters. Finding a good position obviously becomes harder with each subdivision, since there are more possibilities of nearly identical vertices appearing.