Why is the boolean difference modifier not working on joined meshes?
I notice you're using Blender 2.90.x. I don't have that, I'm still using 2.83.4 and 2.91.
That said, I made an &quot;O&quot; by scaling a cube, and then making 3 duplicates with appropriate rotations and translations. I then joined all 4 objects into one. As you can see from my second screenshot, I got a difference, not a union, as expected.
One thing I would suggest for you to do is enable the &quot;3D Print Tools&quot; add-on and check your mesh for degenerate topology.