APEX Destructible wrapped in a blueprint Assertion Failure

I am trying out the apex destructible elements in the latest 4.3 engine.

I have a basic destructible mesh which I have imported and can place into level and it breaks as expected in a local game and on the server of a multiplayer game.

I am trying to get the destructible to function in a multiplayer game, I believe that apex supports replication of the fracturing to clients. But am not sure if this is implemented in UE4 yet?

As an experiment I have wrapped the breakable asset into a Blueprint and enabled the ‘replicates’ behaviour.

Having done this, and placed an instance in level, I now get a debug assertion and the game/editor terminates when I launch from the editor.

In order to track the call stacks I have built and linked against recent 4.3 source, the assertion seems to stem from:

void FApexChunkReport::onStateChangeNotify(const NxApexChunkStateEventData& visibilityEvent)
{
	UDestructibleComponent* DestructibleComponent = Cast<UDestructibleComponent>(FPhysxUserData::Get<UPrimitiveComponent>(visibilityEvent.destructible->userData));
	check(DestructibleComponent);

It looks as though the blueprint wrapped version is not casting (returned value is null)? removing the blueprinted version from the level, this function apparently casts the other non blueprint instances correctly.

Any help greatfully recieved!


Assertion from the log:

[2014.07.19-11.40.22:735][725]LogWindows:Error: appError called: Assertion failed: DestructibleComponent [File:D:\projects\UnrealEngine\4.3\Engine\Source\Runtime\Engine\Private\PhysicsEngine\PhysXSupport.cpp] [Line: 717]

Stack:
FWindowsPlatformStackWalk::StackWalkAndDump() 0xd9a0f706 + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\core\private\windows\windowsplatformstackwalk.cpp:177] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-Core.dll]
FDebug::AssertFailed() 0xd98bfd75 + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\core\private\misc\outputdevice.cpp:203] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-Core.dll]
FApexChunkReport::onStateChangeNotify() 0xd7d139c6 + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\engine\private\physicsengine\physxsupport.cpp:719] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-Engine.dll]
Address = 0xd140ec65 (filename not found) [in D:\projects\UnrealEngine\4.3\Engine\Binaries\ThirdParty\PhysX\APEX-1.3\Win64\VS2013\APEX_DestructiblePROFILE_x64.dll]
Address = 0xd15f0c33 (filename not found) [in D:\projects\UnrealEngine\4.3\Engine\Binaries\ThirdParty\PhysX\APEX-1.3\Win64\VS2013\APEXFrameworkPROFILE_x64.dll]
FPhysScene::ProcessPhysScene() 0xd7ca623a + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\engine\private\physicsengine\physscene.cpp:614] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-Engine.dll]
TBaseRawMethodDelegateInstance_TwoParams_OneVar const & __ptr64,enum EPhysicsSceneType>::ExecuteIfSafe() 0xd7c9b75a + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\core\public\delegates\delegateinstancesimpl.inl:359] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-Engine.dll]
TGraphTask::ExecuteTask() 0xd77798d9 + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\core\public\async\taskgraphinterfaces.h:637] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-Engine.dll]
FTaskThread::ProcessTasks() 0xd978d12c + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\core\private\async\taskgraph.cpp:329] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-Core.dll]
FTaskThread::ProcessTasksUntilQuit() 0xd978d2ed + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\core\private\async\taskgraph.cpp:173] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-Core.dll]
FTaskGraphImplementation::WaitUntilTasksComplete() 0xd979ef0a + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\core\private\async\taskgraph.cpp:865] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-Core.dll]
FPhysScene::WaitPhysScenes() 0xd7cb3656 + 26 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\engine\private\physicsengine\physscene.cpp:548] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-Engine.dll]
UWorld::EnsureCollisionTreeIsBuilt() 0xd77f3103 + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\engine\private\world.cpp:1322] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-Engine.dll]
UWorld::Tick() 0xd73f5c03 + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\engine\private\leveltick.cpp:1106] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-Engine.dll]
UEditorEngine::Tick() 0xd42e3056 + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\editor\unrealed\private\editor.cpp:1199] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-UnrealEd.dll]
UUnrealEdEngine::Tick() 0xd46be836 + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\editor\unrealed\private\unrealedengine.cpp:252] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-UnrealEd.dll]
FEngineLoop::Tick() 0x3ff77092 + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\launch\private\launchengineloop.cpp:2084] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor.exe]
GuardedMain() 0x3ff6
[2014.07.19-11.40.22:736][725]LogWindows:Error: Windows GetLastError: The operation completed successfully. (0)
[2014.07.19-11.40.22:736][725]LogCrashTracker:

[2014.07.19-11.40.22:736][725]LogWindows: === Critical error: ===

[2014.07.19-11.40.22:737][725]LogWindows: Assertion failed: DestructibleComponent [File:D:\projects\UnrealEngine\4.3\Engine\Source\Runtime\Engine\Private\PhysicsEngine\PhysXSupport.cpp] [Line: 717]

Stack:
FWindowsPlatformStackWalk::StackWalkAndDump() 0xd9a0f706 + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\core\private\windows\windowsplatformstackwalk.cpp:177] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-Core.dll]
FDebug::AssertFailed() 0xd98bfd75 + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\core\private\misc\outputdevice.cpp:203] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-Core.dll]
FApexChunkReport::onStateChangeNotify() 0xd7d139c6 + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\engine\private\physicsengine\physxsupport.cpp:719] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-Engine.dll]
Address = 0xd140ec65 (filename not found) [in D:\projects\UnrealEngine\4.3\Engine\Binaries\ThirdParty\PhysX\APEX-1.3\Win64\VS2013\APEX_DestructiblePROFILE_x64.dll]
Address = 0xd15f0c33 (filename not found) [in D:\projects\UnrealEngine\4.3\Engine\Binaries\ThirdParty\PhysX\APEX-1.3\Win64\VS2013\APEXFrameworkPROFILE_x64.dll]
FPhysScene::ProcessPhysScene() 0xd7ca623a + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\engine\private\physicsengine\physscene.cpp:614] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-Engine.dll]
TBaseRawMethodDelegateInstance_TwoParams_OneVar const & __ptr64,enum EPhysicsSceneType>::ExecuteIfSafe() 0xd7c9b75a + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\core\public\delegates\delegateinstancesimpl.inl:359] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-Engine.dll]
TGraphTask::ExecuteTask() 0xd77798d9 + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\core\public\async\taskgraphinterfaces.h:637] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-Engine.dll]
FTaskThread::ProcessTasks() 0xd978d12c + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\core\private\async\taskgraph.cpp:329] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-Core.dll]
FTaskThread::ProcessTasksUntilQuit() 0xd978d2ed + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\core\private\async\taskgraph.cpp:173] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-Core.dll]
FTaskGraphImplementation::WaitUntilTasksComplete() 0xd979ef0a + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\core\private\async\taskgraph.cpp:865] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-Core.dll]
FPhysScene::WaitPhysScenes() 0xd7cb3656 + 26 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\engine\private\physicsengine\physscene.cpp:548] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-Engine.dll]
UWorld::EnsureCollisionTreeIsBuilt() 0xd77f3103 + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\engine\private\world.cpp:1322] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-Engine.dll]
UWorld::Tick() 0xd73f5c03 + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\engine\private\leveltick.cpp:1106] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-Engine.dll]
UEditorEngine::Tick() 0xd42e3056 + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\editor\unrealed\private\editor.cpp:1199] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-UnrealEd.dll]
UUnrealEdEngine::Tick() 0xd46be836 + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\editor\unrealed\private\unrealedengine.cpp:252] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor-UnrealEd.dll]
FEngineLoop::Tick() 0x3ff77092 + 0 bytes [File=d:\projects\unrealengine\4.3\engine\source\runtime\launch\private\launchengineloop.cpp:2084] [in D:\projects\UnrealEngine\4.3\Engine\Binaries\Win64\UE4Editor.exe]
GuardedMain() 0x3ff6

[2014.07.19-11.40.22:738][725]LogExit: Executing StaticShutdownAfterError
[2014.07.19-11.40.22:744][725]LogWindows: FPlatformMisc::RequestExit(1)
[2014.07.19-11.40.22:749][725]Log file closed, 07/19/14 12:40:22