Crash :: Access violation - code c0000005 after opening PlayerController

I’m having this issue where when I open my custom PlayerController in blueprints the editor crashes immediately. This happened after I started adding new Run On Server RPC events to my “Bootstrap / Initialization” custom event graph in my PlayerController. I belive the offending code in the PlayerController is a class variable that is named BPIGameState of type BPI_GameState (interface type).

When you open the project if you try to edit Content/RTS/Core/Player/BP_CameraPawnController the editor crashes before it can open the blueprint.

Download logs here

MachineId:2AF6BA6E4372C977D16003892DAD3E08
EpicAccountId:a5296e62325842c392ef652a52633390

Access violation - code c0000005
(first/second chance not available)

UE4Editor_Engine!UKismetSystemLibrary::SetInterfacePropertyByName()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\engine\private\kismetsystemlibrary.cpp:799]
UE4Editor_Engine!UKismetSystemLibrary::execSetInterfacePropertyByName()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\engine\classes\kismet\kismetsystemlibrary.h:62]
UE4Editor_CoreUObject!UFunction::Invoke()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:4474]
UE4Editor_CoreUObject!UObject::CallFunction()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:700]
UE4Editor_CoreUObject!UObject::ProcessContextOpcode()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:2139]
UE4Editor_CoreUObject!UObject::ProcessInternal()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:925]
UE4Editor_CoreUObject!UObject::CallFunction()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:824]
UE4Editor_CoreUObject!UObject::execVirtualFunction()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:2245]
UE4Editor_CoreUObject!UObject::ProcessInternal()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:925]
UE4Editor_CoreUObject!UObject::CallFunction()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:824]
UE4Editor_CoreUObject!UObject::execVirtualFunction()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:2245]
UE4Editor_CoreUObject!UObject::ProcessInternal()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:925]
UE4Editor_CoreUObject!UObject::CallFunction()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:824]
UE4Editor_CoreUObject!UObject::execVirtualFunction()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:2245]
UE4Editor_CoreUObject!UObject::ProcessInternal()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:925]
UE4Editor_CoreUObject!UFunction::Invoke()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:4474]
UE4Editor_CoreUObject!UObject::ProcessEvent()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1308]
UE4Editor_Engine!AActor::ProcessEvent()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\engine\private\actor.cpp:649]
UE4Editor_Engine!AActor::ReceiveTick()
[d:\build++ue4+release-4.14+compile\sync\engine\intermediate\build\win64\ue4editor\inc\engine\engine.generated.1.cpp:2851]
UE4Editor_Engine!AActor::Tick()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\engine\private\actor.cpp:852]
UE4Editor_Engine!APlayerController::TickActor() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\engine\private\playercontroller.cpp:4061]
UE4Editor_Engine!FActorTickFunction::ExecuteTick()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\engine\private\actor.cpp:113]
UE4Editor_Engine!FTickFunctionTask::DoTask()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\engine\private\ticktaskmanager.cpp:256]
UE4Editor_Engine!TGraphTask::ExecuteTask()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\core\public\async\taskgraphinterfaces.h:868]
UE4Editor_Core!FNamedTaskThread::ProcessTasksNamedThread()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\core\private\async\taskgraph.cpp:932]
UE4Editor_Core!FNamedTaskThread::ProcessTasksUntilQuit()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\core\private\async\taskgraph.cpp:679]
UE4Editor_Core!FTaskGraphImplementation::WaitUntilTasksComplete()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\core\private\async\taskgraph.cpp:1776]
UE4Editor_Engine!FTickTaskSequencer::ReleaseTickGroup()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\engine\private\ticktaskmanager.cpp:525]
UE4Editor_Engine!FTickTaskManager::RunTickGroup()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\engine\private\ticktaskmanager.cpp:1437]
UE4Editor_Engine!UWorld::RunTickGroup()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\engine\private\leveltick.cpp:730]
UE4Editor_Engine!UWorld::Tick()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\engine\private\leveltick.cpp:1340]
UE4Editor_Kismet!FSCSEditorViewportClient::Tick()
[d:\build++ue4+release-4.14+compile\sync\engine\source\editor\kismet\private\scseditorviewportclient.cpp:202]
UE4Editor_UnrealEd!UEditorEngine::Tick()
[d:\build++ue4+release-4.14+compile\sync\engine\source\editor\unrealed\private\editorengine.cpp:1490]
UE4Editor_UnrealEd!UUnrealEdEngine::Tick()
[d:\build++ue4+release-4.14+compile\sync\engine\source\editor\unrealed\private\unrealedengine.cpp:371]
UE4Editor!FEngineLoop::Tick()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:2859]
UE4Editor!GuardedMain()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\launch\private\launch.cpp:152]
UE4Editor!GuardedMainWrapper()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor!WinMain()
[d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:202]
UE4Editor!__scrt_common_main_seh()
[f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:264]
kernel32 ntdll

Hey elitereloaded,

Could you do me a favor and provide the logs from your Saved->Logs folder after the next crash occurs?

Also, while it’s nice to have the project typically, since I’m unable to open the asset I can’t investigate the particular issue with the Player Controller. If you are able to recreate what you believe the issue to be, please provide me with a detailed list of steps I can use to reproduce it on my end.

I’ve tried creating a Player Controller containing a reference to an interface that is named the same thing as the interface itself, and then saving, restarting the project, and attempting to open the Player Controller but it hasn’t caused any crash yet.

Let me know what you find.

I’ll experiment with this , give me a day or two to get back to you. I’ll try to come up with steps to reproduce too.

I have a suspicion we are having the same problem, it’s related to this bug.

Dude, that could be exactly what’s going on. This did not happen until I refactored my PlayerController to bootstrap itself on the Authority server ONLY, and after Authority is bootstrapped it replicated to owning client an event that tells the client it can bootstrap.

This bool that tells the actor whether it was already bootstraped on the authority happens during tick. I will create a video and upload so you and Sean Flint can take a look.

Hopefully you have a version on version control you can roll back to, the fix might take a while.

Just a heads up, when you share a project, no need to include Intermediate, Saved, or Build folders. Those can all be rebuilt at anytime. Also don’t include your .git folder (it’s hidden). That has the entire history of your project in it. All of those things make the download size a lot bigger than it needs to be.

Alright thanks for the heads up.

Also, I copied-pasted my one blueprint that was crashing into a fresh Third Person starter project. Upon opening it, it broke all the variable links and custom object/interface types. It stopped crashes, so although I have to relink all the nodes and reset the variable interface types, I didn’t lose everything. Just need to spend some time to relink some things.

Were you able to discover any further information regarding your issue? If you have determined a set of repro steps that’d be fantastic. I’ve spent some more time looking into this but I haven’t gotten the crash yet, so there’s probably something I’m overlooking between your setup and mine.

Here’s a video I put together to explain to you and the team at Epic what’s going on with this bug and how I “solved” it.

Thanks for putting together that video.

Unfortunately, I haven’t been able to get this issue to occur in a clean project. If you are able to provide a detailed list of repro steps that we can follow to get the issue to occur in a clean project, feel free to leave a comment to reopen the thread; however, at this time, without a repro we are unable to take any further action.

Have a great day