What is the correct method to disconnect an actor from the AnimationSharingManager?

Every so often when deleting an actor that is using animation sharing is causing a crash with this callstack

USkinnedMeshComponent::SetMasterPoseComponent(USkinnedMeshComponent * NewMasterBoneComponent, bool bForceUpdate) Line 1765	C++
UAnimSharingInstance::SetMasterComponentForActor(unsigned int ActorIndex, USkeletalMeshComponent * Component) Line 1757	C++
UAnimSharingInstance::SetPermutationSlaveComponent(unsigned char PermutationIndex, unsigned int) Line 1808	C++
UAnimSharingInstance::TickBlendInstances() Line 1586	C++
UAnimationSharingManager::Tick(float) Line 288	C++

This is even after the UAnimationSharingManager::UnregisterActor(…) function is called for the actor in the BeginDestroy() function for the actor.

What are the steps to correctly disconnect the actor?
Are there any additional steps needed?
Is there a way to ensure the actor is fully disconnected before destroying it?

Thank you.

Turns out BeginDestroy() is too late to disconnect from the Animation Sharing Manager.
Unregistering at EndPlay() seems to work fine.