[BUG] UObject BeginDestroy Called Incorrectly?

Can you please output the class declaration that is holding the reference to the game state and to the declaration of the game state you created that is referencing this other new UObject.

Does everything have a UPROPERTY declaration above it? I’m pretty sure your object is getting garbage collected, which would mean a valid path from root to your object cannot be found.

Depending on who is holding onto what and how this should be straightforward to address.

    UCLASS()
    class A : public UObject
    {
    GENERATED_UCLASS_BODY()

    UPROPERTY()
    AMyGameState* MyGameState;
    }
    
    UCLASS()
    class AMyGameState : public AActor 
    {
    GENERATED_UCLASS_BODY()

    UPROPERTY()
    USomeOtherObject* OtherObject;
    }
    
    UCLASS()
    class USomeOtherObject : public UObject
    {
    GENERATED_UCLASS_BODY()
    }