Dynamic Delegates not working after level streaming

I am working in UE5.0.0 (Preview 2) and have encountered an odd bug(?):

I have some actors placed in a streamed level with a UBoxComponent with a Dynamic Delegate added to listen for OnComponentBeginOverlap (I have tried this both in the constructor and in BeginPlay - makes no difference). Here’s the setup:

InteractionZone->OnComponentBeginOverlap.AddDynamic(this, &ADiscoverableItem::OnOverlapBegin);

My scenario is as follows: I have a master level that streams in sub levels via C++. When the player moves from one area to the next, they trigger a UGameplayStatics::LoadStreamLevel to load in the new level and UGameplayStatics::UnloadStreamLevel to unload the previous one.

The overlap events work fine when the level is first streamed, but after the level is Unloaded and then reloaded, they no longer detect the player.

Has anybody else encountered this issue?

UPDATE:
To circumvent the issue I have tried adding an interface to each of my actors that have the OnComponentOverlap Delegates added, with a “RefreshDelegates” method that simply gets called on each actor when a new level is loaded. The RefreshDelegates method looks like this:

if(InteractionZone)
	{
		InteractionZone->OnComponentBeginOverlap.RemoveAll(this);
        InteractionZone->OnComponentEndOverlap.RemoveAll(this);
		InteractionZone->OnComponentBeginOverlap.AddDynamic(this, &ADiscoverableItem::OnOverlapBegin);
		InteractionZone->OnComponentEndOverlap.AddDynamic(this, &ADiscoverableItem::OnOverlapEnd);
	}

So basically just trying to remove the bindings and re adding them. However, this still doesn’t work, so not sure what’s going here…

I ended up putting all my actors with Dynamic Delegates in a separate level that doesn’t get loaded or unloaded. This works, but is obviously not ideal. Would still be keen to hear if somebody has had the same issue and has any other suggestions.