Problem with FActorInstanceHandle resolving and ALightWeightInstanceManager

Either I do not understand things completely or here is somethind wrong.

So I try to use ALightWeightInstanceManager for my project. I dynamically create actors, move them to HISM componet and back, its ok.
But simpliest interaction with outer code which resolve FActorInstanceHandle give me check assertion in void FActorInstanceHandle::SetCachedActor(AActor* InActor) const

So for example getting and actor for HitResult calling the

AActor* FActorInstanceHandle::FetchActor() const
{
AActor* FetchedActor = GetCachedActor();
if (FetchedActor != nullptr)
{
return FetchedActor;
}

if (ManagerInterface.IsValid())
{
FetchedActor = ManagerInterface->FindOrCreateActor(*this);
SetCachedActor(FetchedActor);
}

return FetchedActor;
}

And here FindOrCreateActor creates my LWI actor and filling handle’s cached actor. I’ve checked GitHub, it’s there for 3 years. All the code written intently to fill CachedActor inside FindOrCreateActor
But the very next call, SetCachedActor(FetchedActor) hit the

void FActorInstanceHandle::SetCachedActor(AActor* InActor) const
{
check(IsActorValid() == false);
ReferenceObject = InActor;
}

and obviously IsActorValid() == true here.

Is it an error or I’m doing and getting something wrong?

Okay, Im almost sure check(IsActorValid() == false); is wrong here.
It’s kind of indempotence principle violation. I do understand why we don’t want cached actor to be changed once it assgned, ok. But why we should have the exception if we try to assign same pointer second time? I suggest it should be like:

void FActorInstanceHandle::SetCachedActor(AActor* InActor) const
{
if (IsActorValid() == false) {
ReferenceObject = InActor; }
}