AIController with Blackboard comp crashing the editor

I have a AI controller with a blackboard component. The class is written in c++. I made a blueprint out of the class and when I open the components present in the blueprint class, the editor crashes with the error

Transient property ObjectProperty /Script/AITest.MyAIController:BlackboardComp contains a reference to non-transient subobject BlackboardComp.

Here is the code

.h

UCLASS()
class AITEST_API AMyAIController : public AAIController
{
	GENERATED_UCLASS_BODY()

	UPROPERTY(Transient)
	TSubobjectPtr<class UBlackboardComponent> BlackboardComp;

	UPROPERTY(Transient)
	TSubobjectPtr<class UBehaviorTreeComponent> BehaviourComp;
	
	/** Posses The character */
	virtual void Possess(class APawn* InPawn) override;

	/* Bot Runs like crazy*/
	UFUNCTION(BlueprintCallable, Category = Behavior)
	void RunCrazy();
};

.cpp

#include "AITest.h"
#include "BehaviorTree/BehaviorTree.h"
#include "BehaviorTree/BehaviorTreeComponent.h"
#include "BehaviorTree/BlackboardComponent.h"
#include "MyBotCharacter.h"
#include "MyAIController.h"


AMyAIController::AMyAIController(const class FPostConstructInitializeProperties& PCIP)
	: Super(PCIP)
{
	BlackboardComp = PCIP.CreateDefaultSubobject<UBlackboardComponent>(this, TEXT("BlackBoardComp"));

	BehaviourComp = PCIP.CreateDefaultSubobject<UBehaviorTreeComponent>(this, TEXT("BehaviourComp"));
}

void AMyAIController::Possess(APawn* InPawn)
{
	Super::Possess(InPawn);

	AMyBotCharacter* Bot = Cast<AMyBotCharacter>(InPawn);

	// start behavior
	if (Bot && Bot->BotBehavior)
	{
		BlackboardComp->InitializeBlackboard(Bot->BotBehavior->BlackboardAsset);


	}
}

void AMyAIController::RunCrazy()
{
	GEngine->AddOnScreenDebugMessage(-1, 2.0f, FColor::Red, "Activated");
}

The whole error message
link text

I just ran into this now as well. Trying to get my AIController to work. It seems that when your specifying the variables BlackBoardComp and BehaviorComp in the .h file. You are setting the UPROPERTY(transient).

From UE4 docs
Transient Says “objects belonging to this class should never be saved on disk”. Only useful in conjunction with certain kinds of native classes which are non-persistent by nature, such as players or windows. This keyword is propagated to child classes; child classes can override this flag using the NonTransient keyword.

But your blackboard has a reference to a variable that is not also transient.

Getting rid of that keyword at least makes the game run. But wouldn’t mind hearing from a bit more senior dev to explain why it was set in the first place. As it leads me to believe I am setting up my BehaviorTree and Blackboard wrong