Async Loading SoftObjectPtr in Primary Data Asset

Awesome! Glad to hear it!

That is correct, for better or worse bundle loading is not a recursive process. At work we have written a custom process for requesting bundles in this way. It definitely feels more intuitive, though I can understand the desire for a bundle request to be a single async request instead of: request A, load A, search A, request B, load B, search B, request C, etc, etc. We only get away with it because the things we request bundles of are kept permanently loaded for the whole game so we can do that search all at once before doing the bundle request.

The other alternative would be to keep the bundle-based reference to the VocalizationDataAsset and let that one have the raw pointers. I don’t know if that works for your use case, but it is an alternative.