CSG issues, help?

Hello, whenever you try using SubtractAsync on a part, then try to negate the part, I notice instead of separating the part, it just removes the union entirely. Why, and how can you avoid this?