4.9, Array of Weak Object Pointers and Blueprints

Hi There!

I hit a huge snail when migrating to 4.9 from 4.8.

I was exposing several properties and functions to blueprints, that involded arrays of weak pointers to UObject or AActor derivatives.
I had several logical cross references, so I needed to break reference cycles. It worked fine for 4.8, and I didn’t get any leaks.

When switching to 4.9, I get UnrealHeaderTool errors like the following one:

Type 'TArray' is not supported by blueprint

If I use ordinary TArray’s of raw pointers, I UnrealHeaderTool gets to compile. But then I get reference cycles.
If I drop Blueprint exposure, code compiles but my blueprints and level blueprints break.

So, I basically have two questions:

  1. Does anybody know why support for arrays of weak pointers was dropped at Blueprints exposure?

  2. Does anybody have a recommendation for me to go about this?
    (I don’t want to start deleting/destroying things by hand)

I asked the question here, but got no answers that could help me.

My properties look like:

   UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Blah)
   TArray< TWeakObjectPtr<AMyActor> > Actors;

And the following things compile but cause me problems:

   //UnrealHeaderTool can handle this, but I don't want to leave weak pointers
   UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Blah)
   TArray< AMyActor * > Actors;
   //UnrealHeaderTool can handle this but breaks my maps
   TArray< TWeakObjectPtr<AMyActor> > Actors;