Boolean union not working between closed solids

Hello!
I’ve been trying to model some swimming goggles and Boolean union is not joining two closed solids that share the same edge, instead it is eliminating the outer solid or just not working.

I’ve tried moving the stuff in the blue layer -+0.001 in the Y direction and it still doesn’t work.

NUEVAS GAFAS.3dm (8.2 MB)

Hello - I would work at the surface level on this not rely on Boolean operations - where there are coincident faces and edges, these will often fail. In addition the model is on the messy side - overly complex surfaces and out of tolerance edges and vertices on these objects.

I’d think about making much, much simpler surfaces but working with this set of objects, Explode, intersect and trim the surfaces that overlap, then join piece by piece at the surface level until you get a closed object.

Some training material-
Level 1
Level2

Also, the purple object has self-intersections - this will never be a good thing for Boolean operations:

-Pascal