Audiokinetic's Community Q&A is the forum where users can ask and answer questions within the Wwise and Strata communities. If you would like to get an answer from Audiokinetic's Technical support team, make sure you use the Support Tickets page.

Upgrading to 4.15, I am getting a UE4 Assertion !IsUnreachable() AK Component Error. How do I correct for this?

+1 vote
UE4Editor-Cmd: [2017.04.20-05.54.16:793][  0]LogWindows:Error: === Critical error: ===
UE4Editor-Cmd: [2017.04.20-05.54.16:793][  0]LogWindows:Error:
UE4Editor-Cmd: [2017.04.20-05.54.16:793][  0]LogWindows:Error: Assertion failed: !IsUnreachable() [File:E:\dms\github\UnrealEngine\Engine\Source\Runtime\CoreUObject\Private\UObject\ScriptCore.cpp] [Line: 1144]
UE4Editor-Cmd: [2017.04.20-05.54.16:794][  0]LogWindows:Error: AkComponent /Game/Maps/Demo_Levels/Demo_AI.Demo_AI:PersistentLevel.Ch_KnightArmour-S5_3491.Ak_Foot_Stomp  Function: '/Script/AkAudio.AkComponent:UpdateGameObjectPosition'
UE4Editor-Cmd: [2017.04.20-05.54.16:794][  0]LogWindows:Error:
UE4Editor-Cmd: [2017.04.20-05.54.16:794][  0]LogWindows:Error:
UE4Editor-Cmd: [2017.04.20-05.54.16:794][  0]LogWindows:Error:
UE4Editor-Cmd: [2017.04.20-05.54.16:795][  0]LogWindows:Error: end: stack for UAT
asked Apr 20, 2017 in General Discussion by Jeremy D. (170 points)
Exact same problem here. Deleting and replacing the asset on which I attached my AkComponent fixed the problem, but now the problem showed on another asset.

2 Answers

0 votes
The function is marked up with UFUNCTION() and tagged as BlueprintNativeEvent, which is allowing it to be triggered while cooking, but it is not in a valid state to have this function called. We just removed the UFUNCTION() tag on this method, we don't want our designers overidding the default behavior.
answered Apr 25, 2017 by Brock H. (510 points)
Cool... I'm still not sure how to correct for this. It seems like the only thing I can do is remove the AK component and re-add it but that will break any associations with it.

What's the best way to refactor my code so that it doesn't cause unnecessary breakage.
I got the same problem. It happen randomly on Aactors owning an Akcomponent in my maps. Sometime deleting them and replacing them corrects the problem, but this is very time wasting...
+1 vote

A bit more detailed answer for others that could encounter this issue :

Go to AkComponent.h

Comment out the line    

//UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category = "Audiokinetic|AkComponent")

above 

void UpdateGameObjectPosition();

Go to AkComponent.cpp and rename 

void UAkComponent::UpdateGameObjectPosition_Implementation() 

to

void UAkComponent::UpdateGameObjectPosition()

Compile your project, you should not encounter the problem again.

Note : this will prevent you from extending this function in blueprints as a consequence, but at least it allowed us to build again.

 

 

answered May 19, 2017 by Julien D. (250 points)
edited May 24, 2017 by Julien D.
Alternatively, could one use a preprocessor block to keep the cooker out of its inner workings? Best of both worlds maybe.
The devs should address this one tbh...
...