Sessions, ActiveNetDrivers empty, crash since UE4 4.13.0

This is a duplicate of the forum entry : Sessions, ActiveNetDrivers empty, crash since UE4 4.13.0 - C++ - Epic Developer Community Forums because I did not know I should post here.

I have a simple Multiplayer project which works in 4.12.5 and 4.13 (with conversion).
I put the relevant changes in my real project in 4.13, but it does not work there.

I am using How To Use Sessions In C++ as reference how to do it, because I did not find any other documentation which made any sense to me. “Look into shooter” is NOT a documentation.

I think I have all relevant changes in my real project, but instead of just working like my test project, it always crashed in
UnrealEngine.cpp line ca. 706
where there is this code:

for (FNamedNetDriver& ActiveNetDriver : ActiveNetDrivers)
{
	Collector.AddReferencedObject(ActiveNetDriver.NetDriver, ReferencingObject);
}

and hovering tells me that ActiveNetDrivers is “Empty”.

I saw this entry in the update log:

New: Online Subsystem modules have
been moved to Plugins, out of
Engine/Source. Engine’s dependency on
OnlineSubsystem modules have been
removed, in some places replaced with
a new interface UOnlineEngineInterface
for a small subset of features Engine
requires. UOnlineEngineInterface is
implemented in
UOnlineEngineInterfaceImpl.
FUniqueNetId and FUniqueNetIdWrapper
have been promoted to a basic type in
core, but they are still opaque types
and must be created by online
subsystems.

and I think it possible that this is the reason for my problem.
Perhaps the original Project has some network vodoo which my new 4.13 project has not.

I had the idea that in DefaultEngine.ini the section [/Script/Engine.GameEngine] could be of interest.
But I just don’t find any documentation about this.

Any ideas?

I think it will not help, but here is the callstack:

 	UE4Editor-CoreUObject.dll!FGCCollector::HandleObjectReference(UObject * & Object, const UObject * ReferencingObject, const UProperty * ReferencingProperty) Line 571	C++
>	UE4Editor-Engine.dll!FWorldContext::AddReferencedObjects(FReferenceCollector & Collector, const UObject * ReferencingObject) Line 707	C++
 	UE4Editor-Engine.dll!UEngine::AddReferencedObjects(UObject * InThis, FReferenceCollector & Collector) Line 1752	C++
 	UE4Editor-CoreUObject.dll!TFastReferenceCollector<FGCReferenceProcessor,FGCCollector,FGCArrayPool,0>::ProcessObjectArray(TArray<UObject *,FDefaultAllocator> & InObjectsToSerializeArray, TRefCountPtr<FGraphEvent> & MyCompletionGraphEvent) Line 352	C++
 	UE4Editor-CoreUObject.dll!TGraphTask<TFastReferenceCollector<FGCReferenceProcessor,FGCCollector,FGCArrayPool,0>::FCollectorTask>::ExecuteTask(TArray<FBaseGraphTask *,FDefaultAllocator> & NewTasks, ENamedThreads::Type CurrentThread) Line 868	C++
 	UE4Editor-Core.dll!FTaskThreadAnyThread::ProcessTasks() Line 1255	C++
 	UE4Editor-Core.dll!FTaskThreadAnyThread::ProcessTasksUntilQuit(int QueueIndex) Line 1149	C++
 	UE4Editor-Core.dll!FTaskThreadBase::Run() Line 621	C++
 	UE4Editor-Core.dll!FRunnableThreadWin::Run() Line 74	C++
 	UE4Editor-Core.dll!FRunnableThreadWin::GuardedRun() Line 23	C++

I created a new project,
this time I put into the project the networking code first, tested it with a mini UMG, everything works.
I add the slate code, everything works.
I close the editor and the Visual Studio, rebuild everything, just a rebuild, no other changes: It crashes again.
Any idea?

Hey BugSwat,

Does your project only include whats in the “How To Use Sessions In C++” tutorial? Or, are you using that for something larger?

Thanks.

Hi,
I have some versions of my projects.
Each one solves a different problem, because I am new to UE4.
Now I wanted to put things together and started with menus and sessions,
but because of the UE engine update I have a problem.

Is there somewhere an information how the DefaultEngine.ini entries for sessions (NULL for now, Steam later) have to look like?

Steam DefaultEngine.ini:

[][1]

OnlineSubsystemNull:

Add this to DefaultEngine.ini:

[OnlineSubsystem]
DefaultPlatformService=Null

[1]:

Hey BugSwat,

Are you still having issues with your Sessions code?

Thanks.

I stopped working on it because I just have no idea what to change.

The above code was already in my .ini. (OnlineSubsystem…)

I found my problem. Kind of very embarrassing but people are so helpful here, it would be not nice to not tell, just in case someone else makes the same mistake. Na, who would do such a dumb thing.

in DefaultEngine.ini I had all the time

[OnlineSubsystem]
DefaultPlatformService=Null

but in MyProject.Build.cs I had

PrivateDependencyModuleNames.Add("OnlineSubsystem");

instead of

PrivateDependencyModuleNames.Add("OnlineSubsystemNull");