Hi James, our implementation has been like this for several years and we hadn’t seen the problem before. But I think that is just because we hadn’t previously found a test case that provoked loading part of the landscape at the exact same time that a nav rebuild was occurring - so I’m not sure whether this is related a recent engine change (or maybe a difference between PhysX and Chaos or another UE4 to UE5 change)
However, thinking about the API further, I’m not sure it would be possible to make this work in the case that the heightfield changes (including loading/unloading due to streaming) with the current API calls. There would need to be some kind of instancing of the data, or a locking mechanism, to make that work.
I don’t think this crash is relevant to other actor classes as only landscapes support sliced geometry collection, as far as I’m aware. Mercuna only attempts to collect geometry on worker threads for components that support sliced collection - for all other actors we collect the mesh on the game thread.
I suspect the fix will have to be moving Mercuna’s collection of this geometry to the game thread, but I just wanted to check whether the intention was to allow multithreaded access here or not.