Spawn Actor with Collision Box - Overlap Triggers Twice

I’m having an issue where Actor A has a collision box A. When a player overlaps collision box A, a second actor is spawned, Actor B.

Actor B has its own collision box B. When this spawns, collision box B first registers an Event Begin Overlap, then an Event End Overlap, then an Event BeginOverlap.

This strange behavior makes it difficult to code with. I want to remove Actor B when Event End Overlap is called but it’s called almost immediately with this weird Begin/End pair that is fired off. I can only assume it’s still setting something up and these overlaps are called erroneously.

I was able to reproduce this issue easily in a new Third Person template project (4.24). I created two actors, PermanentBox (Actor “A”) and TemporaryBox (Actor “B”). For each, I added an identical Box collision and left the defaults. Permanent box has this code:

TemporaryBox has this code:

I added a PermanentBox to the level, hit play and walked on it. Here’s the output:

LogBlueprintUserMessages: [TemporaryBox_C_0] Overlap Begin Overlapped Component: TemporaryBox_C_0.Box Other Component: ThirdPersonCharacter_167.CollisionCylinder
LogBlueprintUserMessages: [TemporaryBox_C_0] Overlap End Overlapped Component: TemporaryBox_C_0.Box Other Component: ThirdPersonCharacter_167.CollisionCylinder
LogBlueprintUserMessages: [TemporaryBox_C_0] Overlap Begin Overlapped Component: TemporaryBox_C_0.Box Other Component: ThirdPersonCharacter_167.CollisionCylinder

As you can see, there is only one TemporaryBox. This is singleplayer so we’re not seeing both the client and server firing off events. It’s the same box collision being overlapped on the same player pawn with the same player collision cylinder.

I have tried a few workarounds. I can have the code ignore the first set of begin/end events but it feels really sloppy and unreliable. I can also wait .1 seconds before enabling overlap events but again… sloppy and unreliable. This seems to me to be some kind of timing issue and I’m not sure how to avoid it. It is absolutely necessary that I spawn a new actor when the player steps inside Actor A’s collision.

Is there anything I might use to determine for sure that an actor (and its components) is done initializing? I can’t imagine there is but I don’t know what else to try. I’ve tried spawning the collision box after the actor has spawned but the same issue came up.

This very much seems like an issue to me but unfortunately there’s so many unrelated UE4 posts with overlap events triggering twice I haven’t been able to find anyone with the same issue.