It turns out the the other developer had defined a override to Length which returned a value of class Area when 2 lengths were multiplied.
We were multiplying the bounding box extrema to try to calculate an approximate volume if volume was not defined.
if (entity.respond_to?(:volume)) rval = entity.volume else rval = bwidth * bdepth * bheight end#if
They plan to fix it, but I think I can coerce each "length" to a float before multiplying them:
if (entity.respond_to?(:volume)) rval = entity.volume else rval = bwidth.to_f * bdepthto_f * bheightto_f end#if
Actually I will do this earlier when I get width from the bounding box