Runtime error on bind function to delegate

Now I’m trying to refactoring about Character and AnimInstance.

Main Purpose is Set Mesh and Montage in BP like this.

After Refactoring the code, I got a runtime error on bind function to delegate and editor is crashed.

LimbusCharacterBase.cpp

#include "LimbusCharacterBase.h"
#include "LimbusAnimInstanceBase.h"
#include "Delegate.h"
#include "Engine.h"
#include "LimbusCharacterState.h"

// Sets default values
ALimbusCharacterBase::ALimbusCharacterBase()
{
        ....
        void ALimbusCharacterBase::PostInitializeComponents(){
	        Super::PostInitializeComponents();
	        LimbusAnim = Cast<ULimbusAnimInstanceBase>(GetMesh()->GetAnimInstance());
	        LimbusAnim->OnMontageEnded.AddDynamic(this, &ALimbusCharacterBase::OnAttackMontageEnded);
            //Error occur on below line
	        LimbusAnim->OnNextAttackCheck.AddUObject(this, &ALimbusCharacterBase::OnComboAttackCheck);
	        LimbusAnim->OnAttackHitCheck.AddUObject(this, &ALimbusCharacterBase::AttackCheck);
        }
        ....
        void ALimbusCharacterBase::OnAttackMontageEnded(UAnimMontage * Montage, bool bInterrupted){
        	GEngine->AddOnScreenDebugMessage(-1, 0.5f, FColor::Red, TEXT("OnAttackMontageEnded"));
        	UE_LOG(LogTemp, Warning, TEXT("OnAttackMontageEnded"));
         	isAttacking = false;
	        AttackEndComboState();
        }

        void ALimbusCharacterBase::OnComboAttackCheck(){
        	GEngine->AddOnScreenDebugMessage(-1, 0.5f, FColor::Red, TEXT("OnComboAttackCheck"));
        	UE_LOG(LogTemp, Warning, TEXT("OnComboAttackCheck"));
        	canNextCombo = false;
        	if (isComboInputOn) {
		        AttackStartComboState();
		        LimbusAnim->JumpToMontageSection(AttackMontage, currentCombo);
	        }
        }

        void ALimbusCharacterBase::AttackCheck(){
        	GEngine->AddOnScreenDebugMessage(-1, 0.5f, FColor::Red, TEXT("AttackCheck"));
        	UE_LOG(LogTemp, Warning, TEXT("AttackCheck"));
        	FHitResult HitResult;
        	FVector StartLocation = GetActorLocation();
        	FVector EndLocation = StartLocation + (Camera->GetForwardVector() * 75.0f);
        	FCollisionQueryParams Params(NAME_None, false, this);
        	bool bResult = GetWorld()->SweepSingleByChannel(HitResult, StartLocation, EndLocation, FQuat::Identity, ECollisionChannel::ECC_GameTraceChannel2, FCollisionShape::MakeSphere(75.0f), Params);

        	if (bResult) {
        		if (HitResult.Actor.IsValid()) {
		        	UE_LOG(LogTemp, Warning, TEXT("Hit!!"));
		        	FDamageEvent DamageEvent;
		        	HitResult.Actor->TakeDamage(getDamage(), DamageEvent, GetController(), this);
	        	}
        	}
        }
}

LimbusAnimInstanceBase.h

#include "CoreMinimal.h"
#include "Animation/AnimInstance.h"
#include "ConstructorHelpers.h"
#include "GameFramework/CharacterMovementComponent.h"
#include "Engine/Classes/GameFramework/Actor.h"
#include "Engine/Classes/Animation/AnimMontage.h"
#include "Delegates/Delegate.h"
#include "LimbusAnimInstanceBase.generated.h"

DECLARE_MULTICAST_DELEGATE(FOnNextAttackCheckDelegate);
DECLARE_MULTICAST_DELEGATE(FOnAttackHitCheckDelegate);

UCLASS()
class LIMBUS_API ULimbusAnimInstanceBase : public UAnimInstance{
	GENERATED_BODY()

public:
        .....
	FOnNextAttackCheckDelegate OnNextAttackCheck;
	FOnAttackHitCheckDelegate OnAttackHitCheck;
        .....
}

Full crash report ishere

Unhandled exception

UE4Editor_Limbus_1826!TMulticastScriptDelegate<FWeakObjectPtr>::Add() [e:\epic games\ue_4.22\engine\source\runtime\core\public\uobject\scriptdelegates.h:324]
UE4Editor_Limbus_1826!ALimbusCharacterBase::PostInitializeComponents() [g:\project\limbus\source\limbus\private\character\limbuscharacterbase.cpp:97]
UE4Editor_Engine!AActor::PostActorConstruction() [d:\build\++ue4\sync\engine\source\runtime\engine\private\actor.cpp:3173]
UE4Editor_Engine!AActor::FinishSpawning() [d:\build\++ue4\sync\engine\source\runtime\engine\private\actor.cpp:3099]
UE4Editor_Engine!AActor::PostSpawnInitialize() [d:\build\++ue4\sync\engine\source\runtime\engine\private\actor.cpp:3041]
UE4Editor_Engine!UWorld::SpawnActor() [d:\build\++ue4\sync\engine\source\runtime\engine\private\levelactor.cpp:478]
UE4Editor_Engine!AGameModeBase::SpawnDefaultPawnAtTransform_Implementation() [d:\build\++ue4\sync\engine\source\runtime\engine\private\gamemodebase.cpp:1180]
UE4Editor_Engine!AGameModeBase::execSpawnDefaultPawnAtTransform() [d:\build\++ue4\sync\engine\source\runtime\engine\classes\gameframework\gamemodebase.h:48]
UE4Editor_CoreUObject!UFunction::Invoke() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:4643]
UE4Editor_CoreUObject!UObject::ProcessEvent() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1464]
UE4Editor_Engine!AActor::ProcessEvent() [d:\build\++ue4\sync\engine\source\runtime\engine\private\actor.cpp:769]
UE4Editor_Engine!AGameModeBase::SpawnDefaultPawnAtTransform() [d:\build\++ue4\sync\engine\intermediate\build\win64\ue4editor\inc\engine\gamemodebase.gen.cpp:187]
UE4Editor_Engine!AGameModeBase::SpawnDefaultPawnFor_Implementation() [d:\build\++ue4\sync\engine\source\runtime\engine\private\gamemodebase.cpp:1172]
UE4Editor_Engine!AGameModeBase::execSpawnDefaultPawnFor() [d:\build\++ue4\sync\engine\source\runtime\engine\classes\gameframework\gamemodebase.h:48]
UE4Editor_CoreUObject!UFunction::Invoke() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:4643]
UE4Editor_CoreUObject!UObject::ProcessEvent() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1464]
UE4Editor_Engine!AActor::ProcessEvent() [d:\build\++ue4\sync\engine\source\runtime\engine\private\actor.cpp:769]
UE4Editor_Engine!AGameModeBase::SpawnDefaultPawnFor() [d:\build\++ue4\sync\engine\intermediate\build\win64\ue4editor\inc\engine\gamemodebase.gen.cpp:196]
UE4Editor_Engine!AGameModeBase::RestartPlayerAtPlayerStart() [d:\build\++ue4\sync\engine\source\runtime\engine\private\gamemodebase.cpp:1244]
UE4Editor_Engine!AGameModeBase::RestartPlayer() [d:\build\++ue4\sync\engine\source\runtime\engine\private\gamemodebase.cpp:1211]
UE4Editor_Engine!AGameModeBase::HandleStartingNewPlayer_Implementation() [d:\build\++ue4\sync\engine\source\runtime\engine\private\gamemodebase.cpp:1025]
UE4Editor_Engine!AGameModeBase::execHandleStartingNewPlayer() [d:\build\++ue4\sync\engine\source\runtime\engine\classes\gameframework\gamemodebase.h:48]
UE4Editor_CoreUObject!UFunction::Invoke() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:4643]
UE4Editor_CoreUObject!UObject::ProcessEvent() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1464]
UE4Editor_Engine!AActor::ProcessEvent() [d:\build\++ue4\sync\engine\source\runtime\engine\private\actor.cpp:769]
UE4Editor_Engine!AGameModeBase::HandleStartingNewPlayer() [d:\build\++ue4\sync\engine\intermediate\build\win64\ue4editor\inc\engine\gamemodebase.gen.cpp:102]
UE4Editor_Engine!UWorld::SpawnPlayActor() [d:\build\++ue4\sync\engine\source\runtime\engine\private\levelactor.cpp:774]
UE4Editor_Engine!ULocalPlayer::SpawnPlayActor() [d:\build\++ue4\sync\engine\source\runtime\engine\private\localplayer.cpp:285]
UE4Editor_Engine!UGameInstance::StartPlayInEditorGameInstance() [d:\build\++ue4\sync\engine\source\runtime\engine\private\gameinstance.cpp:387]
UE4Editor_UnrealEd!UEditorEngine::CreatePIEGameInstance() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\playlevel.cpp:3341]
UE4Editor_UnrealEd!UEditorEngine::PlayInEditor() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\playlevel.cpp:2466]
UE4Editor_UnrealEd!UEditorEngine::StartQueuedPlayMapRequest() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\playlevel.cpp:1280]
UE4Editor_UnrealEd!UEditorEngine::Tick() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\editorengine.cpp:1532]
UE4Editor_UnrealEd!UUnrealEdEngine::Tick() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\unrealedengine.cpp:403]
UE4Editor!FEngineLoop::Tick() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3967]
UE4Editor!GuardedMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launch.cpp:168]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:145]
UE4Editor!WinMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:275]
UE4Editor!__scrt_common_main_seh() [d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll

I cannot find the reason of this error.

Is there something wrong or do I miss something?

Try to use AddDynamic instead of AddUObject

It still not works.
AddDynamic can be used with dynamic multicast delegate so I tried that change multicast delegate to dynamic multicast delegate.
But still same crash and same reports.

You should have the same params on function and delegate. It is strange that you didnt had a compilation error.

Someting like this:

in .h

DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FMySignature, bool, IsOk, AActor*, MyActor); //"," between type and variable name

UFunction() //do not forget that
void MyActor::Bar(bool IsOk, AActor* MyActor){};

FMySignature OnEvent;

in .cpp

OnEvent.Broacast(b, MyActor);