Why do I have to click "copy reference" everytime one of my blueprints has a compile error?

Here’s my header file for the struct, the cpp is empty (aside of the includes)

#pragma once
#include "FNeedLookupTable.generated.h"

/**
 * 
 */

USTRUCT(BlueprintType)

struct FNeedLookupTable : public FTableRowBase
{

	GENERATED_USTRUCT_BODY()

public:
	FNeedLookupTable()
		: NeedName(FText::FromString(TEXT("")))
		, Comment(FText::FromString(TEXT("")))
		, Thumbnail()
	{}

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Need)
	FText NeedName; 

	UPROPERTY(EditAnywhere, BlueprintReadWrite, CAtegory = Need)
	FText Comment; 

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Need)
	TAssetPtr<UTexture2D> Thumbnail;

};