IsValid(GetCapsuleComponent())
IsValid(OtherActor)
IsValid(GetMesh())
UFUNCTION()
void OnBeginOverlap();//–>Change this name (in case..)
UPDATE
Are you destroying an actor?
OtherActor->Destroy();
And then you attach it?
OtherActor->AttachToActor(this, rules); //–> BOOM