Still seeing this crash with that changelist, rarer than before however. All of our DestructibleComponents use is within the Async scene.
Looking at the list returned by:
PxActor** PActiveActors = PScene->getActiveActors(NumActors);
It seems that while the destructible actor which was destroyed contained 25 chunks, only one of those chunks still remains in PActiveActors (the one which ultimately causes the code to crash).
All other actors are either valid, or in the IgnoreActiveActors list.
The invalid actor seems to have been killed several frames before, and I’m seeing two sets of calls to fetchResults (and thus two clearings of the IgnoreActiveActors list) before the crash occurs.
I removed the call to clear the IgnoreActiveActors list at the bottom of SyncComponentsToBodies_AssumesLocked as it seems to me the only time this list should be cleared is when fetchResults is called? Either way it didn’t help.
This detail is from three crashes post adding your fix, so take it with a pinch of salt as I may have been lucky to get three similar crashes!