Pig of a crash - "Pure virtual function being called while application was running"

Sure, that works fine. My project has an extremely complex GameInstance, although it doesn’t look like we’ve implemented anything from the base class other than Init() and Shutdown().

I’d love to see a debugger hit on these crashes, that would probably be pretty helpful.

On the first one you have there, it looks like the trace is going right through Garbage Collection. If you’re crashing in Garbage Collection, that usually means there’s a strong likelihood that you’ve stomped on memory somewhere that didn’t get detected, and now Bad Things are happening elsewhere. The usual culprit is not having some object pointer as UPROPERTY when you should, although there are other ways to also completely blow up the Garbage Collector.

The second one is blowing up in an AddReferencedObjects(), which makes little sense to me, unless you’ve also seriously corrupted memory somehow.

I don’t think this is happening simply because you’ve extended UGameInstance. I think somewhere you’re stomping all over memory in the garbage collector.