Migrating to 4.9: UnrealHeader Tool fails at a UPROPERTY(BlueprintReadWrite) of TArray

What aforementioned reference cycle? when you delete item from array it is not exist in memory anymore, there is not invalid or valid pointer, there no pointer at all, there for reference don’t exist. UE4 is full of cycle references (for example Pawn knows which Controller possessing it and Controller knows what Pawn it is possessing), and none of them use weak pointers they clean after themselves (or possibly via UPROPERTY() becuase it also involved with GC). Btw on UObjects pointers, you can use IsValidLowLevel