PIE reference chain crash

I am getting this crash after stopping PIE. Basically I have a UBlueprint which is instantiated at runtime from an ActorComponent, which then has a function that gets its “owning actor”, which basically gets the ActorComponents Outer. Once the Blueprint function “GetOwningActor” has been called, if I stop PIE, the editor crashes saying that the Map file is still referenced through a chain. The function “GetOwningActor” does not store the actor that it returns anywhere, but it seems like CallFunc_GetOwningActor_ReturnValue does somehow keep a reference to it, causing this crash.

Is there anyway to stop a BlueprintCallable function from holding on to a reference?

[2014.11.05-18.45.38:650][553]LogReferenceChain:
Searching referencers for
Minimal_Default. This may take several
minutes.
[2014.11.05-18.45.38:764][553]LogReferenceChain:
Generating reference graph …
[2014.11.05-18.45.38:768][553]LogReferenceChain:
Level 0 has 10 nodes …
[2014.11.05-18.45.38:772][553]LogReferenceChain:
Level 1 added 45 nodes …
[2014.11.05-18.45.38:777][553]LogReferenceChain:
Level 2 added 98 nodes …
[2014.11.05-18.45.38:783][553]LogReferenceChain:
Level 3 added 78 nodes …
[2014.11.05-18.45.38:788][553]LogReferenceChain:
Level 4 added 11 nodes …
[2014.11.05-18.45.38:794][553]LogReferenceChain:
Level 5 added 13 nodes …
[2014.11.05-18.45.38:800][553]LogReferenceChain:
Level 6 added 4 nodes …
[2014.11.05-18.45.38:805][553]LogReferenceChain:
Level 7 added 0 nodes …
[2014.11.05-18.45.38:805][553]LogReferenceChain:
Generating reference chains …
[2014.11.05-18.45.38:805][553]LogReferenceChain:
[2014.11.05-18.45.38:805][553]LogReferenceChain:
External Referencers:
[2014.11.05-18.45.38:805][553]LogReferenceChain:
[2014.11.05-18.45.38:805][553]LogReferenceChain:
(standalone) StateMachineX
/Game/Blueprints/TestSM.TestSM->States
[2014.11.05-18.45.38:805][553]LogReferenceChain:
TestState_C
/Game/Blueprints/TestSM.TestSM:TestState_C_0->CallFunc_GetOwningActor_ReturnValue
[2014.11.05-18.45.38:805][553]LogReferenceChain:
TestObject_C
/Game/Maps/UEDPIE_0_Minimal_Default.Minimal_Default:PersistentLevel.TestObject_C_1->Outer
[2014.11.05-18.45.38:805][553]LogReferenceChain:
Level
/Game/Maps/UEDPIE_0_Minimal_Default.Minimal_Default:PersistentLevel->OwningWorld
[2014.11.05-18.45.38:805][553]LogReferenceChain:
(target) World
/Game/Maps/UEDPIE_0_Minimal_Default.Minimal_Default

This is the function that is breaking it, and as you can see there is no stored reference to anything, just returning an Outer.

AActor* UStateMachineX::GetOwningActor()
{
UStateMachineXComponent* Comp = GetSMComponent();
return Comp == NULL ? NULL : Cast(Comp->GetOuter());
}

UStateMachineXComponent* UStateMachineX::GetSMComponent() const
{
return Cast(GetOuter());
}

push

Is there a real solution by now? I have the exact same issue. My whole team as well. Happens only if minimum 1 Client is calling such a Outer-getting function.

For 1 Player (which is Server by default) there is no problem.