Constructing c++ instance in blueprint (4.22)

I have a c++ class called WeakPotion that is derived from UObject. I try to construct an instance of it in blueprints but when I run the game and attempt to construct it, unreal crashes and gives me this error message:

Assertion failed: [File:D:\Build\++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp] [Line: 2496] *INVALID* is not being constructed with either NewObject, NewNamedObject or ConstructObject.

How can I construct an instance of my class in blueprint? I am using version 4.22.

WeakPoition.h

#pragma once

#include "CoreMinimal.h"
#include "SuperItem.h"
#include "WeakPotion.generated.h"

UCLASS(BlueprintType)
class WIZARDS_V2_API UWeakPotion : public USuperItem
{
	GENERATED_BODY()
public:
	UWeakPotion();
	UWeakPotion(int);
	virtual ~UWeakPotion();	// abstract class

	bool useItem() override;
};

SuperItem.h

#pragma once

#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "SuperItem.generated.h"

UENUM(BlueprintType)
enum EItemIds
{
...
};

UENUM(BlueprintType)
enum EItemTypes
{
...
};

UCLASS(Blueprintable)
class WIZARDS_V2_API USuperItem : public UObject
{
	GENERATED_BODY()
public:
	USuperItem();
	USuperItem(EItemIds, FString, EItemTypes, int);
	virtual ~USuperItem();	// abstract class
...
};

Level Blueprint

From the error it gives, it sounds like it is required to create the object using one of the listed methods in the error. One option is to make a static function in a blueprint function library in cpp. In that function call NewObject to create the object, then return the object through the function in BP.

An example from another answer can be found here.