The openvdb API was used incorrectly before. I didn't notice that this is a static function and requires the type to be passed in. Note that this does not solve the cache invalidation issue yet. Instead it handles the case more gracefully when the stored .vdb file changes when Blender doesn't expect it to change.