The normals on your main object are all flipped. To see them, enable the checkbox on the *Viewport Overlays* dropdown. (Red means they're flipped!) [![enter image description here][1]][1] Select the object and then press <kbd>Alt</kbd>-<kbd>N</kbd> *> Flip*. You should find that the boolean works properly when you've corrected them. [1]: https://i.sstatic.net/UblUE.jpg