PlayerController initialized after OnOverlapBegin call


I’m using AVolume objects that are placed in the level as capture zones.
In c++, I bind a delegate to their Begin and End overlap, like so:

triggerZone->OnActorBeginOverlap.AddDynamic(this, &AMyGameCaptureZoneController::OnOverlapBegin);
triggerZone->OnActorEndOverlap.AddDynamic(this, &AMyGameCaptureZoneController::OnOverlapEnd);

Inside of the OnOverlapBegin and End, I cast the OtherActor to AMyGameCharacter (after checking if it can, of course).
Afterwards, I get the Controller from this character and cast to AMyGamePlayerController so I can use it for things inside this function.

This works fine when I walk into a capture zone while the game is in progress.
However, when I spawn inside of this capture zone at game start, OnOverlapBegin seems to be called before the PlayerController of OtherActor is initialized and it’s just null.
The AMyGameCharacter object is valid.

How can I solve this issue?