Hi DanH_AA, thanks for your response.
Looks like I’ve managed to figure out how to solve that issue. I am currently in progress fixing it. But this issue is completely related to my custom changes with Chaos Destruction system for UE 5.3.
Simply speaking during spawning and destruction of ChaosCachePlayer classes, callbacks are added and removed respectively for 4 different delegates. These are places for this
CacheManagerActor::BeginEvaluate => lines 360-363
CacheManagerActor::EndEvaluate => lines 492-495
Delegates are from PBDRigidsSolver(more exactly are from its parent FPhysicsSolverEvents)
FSolverPreAdvance EventPreSolve;
FSolverPreBuffer EventPreBuffer;
FSolverPostAdvance EventPostSolve;
FSolverTeardown EventTeardown;
During Adding/Removing corresponding callbacks to those delagates, may come a situation when there is already another background/fpreground worker threads running these delegates(thread called Broadcast). There are not so many places where those delegates are used. In my case everything is inside of PBDRigidsSolver.
So, if you synchronize access to those delegates, the error will disappear. And I didn’t notice yet any drawbacks of this.
I’ve tested it with Epic code, it’s worked out. But There are a lot of changes to be done to fix it. At least custom Physics solver has to be created. I am doing it right now.
As per my understanding, it is forbidden to add/remove new delegate instances if there are threads reading already existed instances.
Hope it brings some clarity for this