Why does ServerUnmutePlayer() fail on client connect?

So I am now able to list servers on Steam and see them from the client, however when I attempt to connect the server bails out during the connection process because it attempts to process a ServerUnmutePlayer event and the player ID it has is invalid.

Call stack:

 	spacegameServer-Win64-Debug.exe!APlayerController::ServerUnmutePlayer_Validate(FUniqueNetIdRepl PlayerId) Line 2924	C++
 	spacegameServer-Win64-Debug.exe!APlayerController::execServerUnmutePlayer(FFrame & Stack, void * const Result) Line 33	C++
 	spacegameServer-Win64-Debug.exe!UFunction::Invoke(UObject * Obj, FFrame & Stack, void * const Result) Line 3601	C++
>	spacegameServer-Win64-Debug.exe!UObject::ProcessEvent(UFunction * Function, void * Parms) Line 863	C++
 	spacegameServer-Win64-Debug.exe!AActor::ProcessEvent(UFunction * Function, void * Parameters) Line 604	C++
 	spacegameServer-Win64-Debug.exe!FObjectReplicator::ReceivedBunch(FInBunch & Bunch, const FReplicationFlags & RepFlags, bool & bOutHasUnmapped) Line 679	C++
 	spacegameServer-Win64-Debug.exe!UActorChannel::ReceivedBunch(FInBunch & Bunch) Line 1489	C++
 	spacegameServer-Win64-Debug.exe!UChannel::ReceivedSequencedBunch(FInBunch & Bunch) Line 235	C++
 	spacegameServer-Win64-Debug.exe!UChannel::ReceivedNextBunch(FInBunch & Bunch, bool & bOutSkipAck) Line 511	C++
 	spacegameServer-Win64-Debug.exe!UChannel::ReceivedRawBunch(FInBunch & Bunch, bool & bOutSkipAck) Line 316	C++
 	spacegameServer-Win64-Debug.exe!UNetConnection::ReceivedPacket(FBitReader & Reader) Line 1027	C++
 	spacegameServer-Win64-Debug.exe!UNetConnection::ReceivedRawPacket(void * InData, int Count) Line 496	C++
 	spacegameServer-Win64-Debug.exe!UIpNetDriver::TickDispatch(float DeltaTime) Line 278	C++
 	spacegameServer-Win64-Debug.exe!TBaseUObjectMethodDelegateInstance_OneParam<UNetDriver const ,void,float>::Execute(float InParam1) Line 624	C++
 	spacegameServer-Win64-Debug.exe!TBaseUObjectMethodDelegateInstance_OneParam<UNetDriver const ,void,float>::ExecuteIfSafe(float InParam1) Line 654	C++
 	spacegameServer-Win64-Debug.exe!TBaseMulticastDelegate_OneParam<void,float>::Broadcast(float InParam1) Line 1815	C++
 	spacegameServer-Win64-Debug.exe!UWorld::Tick(ELevelTick TickType, float DeltaSeconds) Line 1031	C++
 	spacegameServer-Win64-Debug.exe!UGameEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 897	C++
 	spacegameServer-Win64-Debug.exe!FEngineLoop::Tick() Line 2091	C++
 	spacegameServer-Win64-Debug.exe!EngineTick() Line 53	C++
 	spacegameServer-Win64-Debug.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, int nCmdShow) Line 135	C++
 	spacegameServer-Win64-Debug.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 196	C++

Error in log:

[2014.06.24-15.58.11:198][847]LogNet:Error: ReceivedBunch: RPC_GetLastFailedReason: ServerUnmutePlayer_Validate

Anyone have any ideas why this happens? If I use the null onlinesubsystem everything works fine…

Cheers,

This may be a result of a bug a git user noticed last week. A result of a copy/paste error on my part.

Check out

FOnlineSessionSteam::RegisterPlayer and FOnlineSessionSteam::UnregisterPlayer

Make sure you don’t have the version of the code casting to FUniqueNetIdString. It should be FUniqueNetIdSteam. This is fixed in latest and is what I imagine is the issue.

Thanks Josh - that did indeed fix the problem!