Openvdb does the following check in a couple of places:
if (std::abs(determinant) < 3.0 * math::Tolerance<double>::value()) {
OPENVDB_THROW(ArithmeticError, "Non-zero scale values required");
}This leads to crashes even in release builds when volumes are scaled down too much.
The solution proposed in T99004 is to detect when volumes get too small and to replace those with empty volumes instead.