Why is UE4 crashing when calling interface function

Hi Everyone,

I am not sure what I am doing wrong here. When I try to make a call to the function AffectHealth, I get a crash. I have tried casting the object using Cast (As seen below) and InterfaceCast<>.

This is where the function where the crash occurs:

void AWeapon::NotifyActorBeginOverlap(AActor* OtherActor)
{
	IDamageable* damageableActor = Cast<IDamageable>(OtherActor);

	// Check if this actor is damageable
	if (damageableActor)
	{
             // THIS IS WHERE THE CRASH Happens
		damageableActor->AffectHealth();
	}
}

This is the interface defined in C++:

UINTERFACE(BlueprintType)
class HSROUGE_API UDamageable : public UInterface
{
	GENERATED_BODY()

};

class HSROUGE_API IDamageable
{
	GENERATED_BODY()

public:

	UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "DamageSystem")
	void AffectHealth();
};

Base character class implementing the Interface:
UCLASS()
class ABaseCharacter : public ACharacter, public IDamageable
{
.
.
.
UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = “DamageSystem”)
void AffectHealth();

	virtual void AffectHealth_Implementation();
.
.
.
}

void ABaseCharacter::AffectHealth_Implementation()
{
	UE_LOG(LogTemp, Warning, TEXT("I %s health is affected From BaseCharacter Class"), *this->GetName());
}

Sorry it appears the last section got messed up

UCLASS()
class ABaseCharacter : public ACharacter, public IDamageable
{
	GENERATED_BODY()

public:
	// Sets default values for this character's properties
	ABaseCharacter();


	UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "DamageSystem")
	void AffectHealth();

	virtual void AffectHealth_Implementation();
}

My apologies, I have found the answer in the UE4 Interfaces in C++ Located here

Here is my fixed code:

 void AWeapon::NotifyActorBeginOverlap(AActor* OtherActor)
 {
     IDamageable* damageableActor = Cast<IDamageable>(OtherActor);
 
     // Check if this actor is damageable
     if (damageableActor)
     {
         IDamageable::Execute_AffectHealth(OtherActor);
     }
 }