BUG: playerarray has invalid playerstates? please help

I think this is related to TObjectPtr. If you log PlayerArray from C++, it holds pointers to valid PlayerState(s) as expected. If you log PlayerArray from blueprint, its pointers are reported as invalid.

In GameStateBase, PlayerArray is exposed as:

UPROPERTY(Transient, BlueprintReadOnly, Category=GameState)
TArray<TObjectPtr<APlayerState>> PlayerArray;

If you make a helper function that returns TArray<APlayerState*>, it works in blueprints. Ex:

UFUNCTION(BlueprintPure)
TArray<APlayerState*> GetPlayerArray() const;

TArray<APlayerState*> AGame_GameState::GetPlayerArray() const
{
	return PlayerArray;
}