Solid Intersection fail - Boolean Intersection set is empty

I’m trying to find the overlap between multiple breps using the Solid Intersection block. In the example attached I have Box and 2 Spheres, one of which overlaps with the box. The Solid Intersection block returns the error “Boolean Intersection set is empty”. I’m guessing that the overlap is not being detected for some reason. Converting the shapes to meshes and using the Mesh Intersection block gives the result I would expect. I’ve read posts from a few others having similar issues, but nothing as simple as this example. Am I miss understanding something here?

Solid Intersection Fail.gh (12.9 KB)

Solid intersection is working ok. Maybe with an unexpected and counter-intuitive logic, but it is useable.

Both “Breps A” and “Breps B” are lists.
In your case A have 1 solid and B have 2 solids.

What the component is doing is the intersetion of all the components of A with all the components of B, so:
A0 ∩ ( B0 ∩ B1 )
In your situation B0 and B1 does not intersect, and so the result is empty.

For you to have some output you’ll need to graft B, so it will do A0 ∩ B0 and then separately A0 ∩ B1
2020-02-29 12_09_25-Grasshopper - Solid Intersection Fail_

I don’t know if this should be adressed as bug or not… the rhino command works with sets too, but behave differently.

Meshes are behaving differently maybe because disjointed meshes can still be joined into a single mesh object, so maybe at the start of the calculation every mesh in B is “fused” into a single one.

Counter-intuitive is right. I’ve discovered that swapping my inputs will also work without the graft (for this data set). There is definitely something asymmetric happening inside the block.
Thanks for your help.