How can increase death count with respawn?

I am implementing DeathCount in PlayerState and incrementing DeathCount through PlayerController in GameMode. Currently, respawn works normally the first time it dies, but it does not work the second time. Can I know how to do it?

void AJJGameMode::incDeathCount(AJJPlayerController* deadPlayer)
{

	for (FConstPlayerControllerIterator iter = GetWorld()->GetPlayerControllerIterator(); iter; ++iter)
	{
		const auto JJPlayerController = Cast<AJJPlayerController>(iter->Get());
		if ((JJPlayerController != nullptr) && (deadPlayer == JJPlayerController))
		{
			JJPlayerController->incDeathCount();
			JJPlayerController->UnPossess();
			RestartPlayer(JJPlayerController);
			break;
		}
	}

	if (JJPlayerState != nullptr)
	{
		JJPlayerState->incDeathCount();
	}
}


void AJJPlayerController::incDeathCount() const
{
	JJPlayerState->incDeathCount();
}

void AJJCharacter::setCharacterState(ECharacterState state)
{
	JJCHECK(currentState != state);
	currentState = state;

	switch (currentState)
	{
	// other code

	case ECharacterState::DEAD:
		DisableInput(JJPlayerController);
		GetWorld()->GetTimerManager().SetTimer(deadTimerHandle, FTimerDelegate::CreateLambda([this]()->void {
			auto gameMode = Cast<AJJGameMode>(GetWorld()->GetAuthGameMode());
			gameMode->incDeathCount(JJPlayerController);
			}), deadTimer, false);
		break;
	default:
		break;
	}
}