hi, i am using Netcode for GameObjects for my game. I am using websocket. I get this error when the webgl client closes the browser.
Unity editor version: 2022.3.4f1
Netcode for GameObjects version: 1.5.1
Unity Transport version: 2.0.1
Error sending message: Connection ID is invalid. Likely caused by sending on stale connection 4294967000.
#1 DefaultBurstRuntimeLogCallback(void*, BurstLogType, char const*, char const*, int)
#2 Unity.Jobs.IJobExtensions.JobStruct`1<Unity.Netcode.Transports.UTP.UnityTransport.SendBatchedMessagesJob>.Execute(ref Unity.Netcode.Transports.UTP.UnityTransport.SendBatchedMessagesJob data, System.IntPtr additionalPtr, System.IntPtr bufferRangePatchData, ref Unity.Jobs.LowLevel.Unsafe.JobRanges ranges, int jobIndex) → void_225dfbf4bdce5619f2aa97464bdf5e75 from UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
#3 76b1071e4a758cb49b53b26b58023334
#4 ExecuteJob(ManagedJobData*, void ()(void , void*, void*, void*, int), int, unsigned char*)
#5 ForwardJobToManaged(ManagedJobData*)
#6 ScheduleManagedJob(JobScheduleParameters const&, void*, ScriptingExceptionPtr*)
#7 JobsUtility_CUSTOM_Schedule_Injected(JobScheduleParameters&, JobFence&)
#8 (Mono JIT Code) (wrapper managed-to-native) Unity.Jobs.LowLevel.Unsafe.JobsUtility:Schedule_Injected (Unity.Jobs.LowLevel.Unsafe.JobsUtility/JobScheduleParameters&,Unity.Jobs.JobHandle&)
#9 (Mono JIT Code) Unity.Jobs.LowLevel.Unsafe.JobsUtility:Schedule (Unity.Jobs.LowLevel.Unsafe.JobsUtility/JobScheduleParameters&)
#10 (Mono JIT Code) [IJob.cs:87] Unity.Jobs.IJobExtensions:Run<Unity.Netcode.Transports.UTP.UnityTransport/SendBatchedMessagesJob> (Unity.Netcode.Transports.UTP.UnityTransport/SendBatchedMessagesJob)
#11 (Mono JIT Code) [UnityTransport.cs:793] Unity.Netcode.Transports.UTP.UnityTransport:SendBatchedMessages (Unity.Netcode.Transports.UTP.UnityTransport/SendTarget,Unity.Netcode.Transports.UTP.BatchedSendQueue)
#12 (Mono JIT Code) [UnityTransport.cs:1108] Unity.Netcode.Transports.UTP.UnityTransport:FlushSendQueuesForClientId (ulong)
#13 (Mono JIT Code) [UnityTransport.cs:1156] Unity.Netcode.Transports.UTP.UnityTransport:smile:isconnectRemoteClient (ulong)
#14 (Mono JIT Code) [NetworkConnectionManager.cs:850] Unity.Netcode.NetworkConnectionManager:OnClientDisconnectFromServer (ulong)
#15 (Mono JIT Code) [NetworkConnectionManager.cs:878] Unity.Netcode.NetworkConnectionManager:smile:isconnectRemoteClient (ulong)
#16 (Mono JIT Code) [NetworkConnectionManager.cs:974] Unity.Netcode.NetworkConnectionManager:Shutdown ()
#17 (Mono JIT Code) [NetworkManager.cs:979] Unity.Netcode.NetworkManager:ShutdownInternal ()
#18 (Mono JIT Code) [NetworkManager.cs:1040] Unity.Netcode.NetworkManager:OnDestroy ()
#19 (Mono JIT Code) [NetworkManager.cs:1033] Unity.Netcode.NetworkManager:OnApplicationQuit ()
#20 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
#21 mono_jit_runtime_invoke
#22 do_runtime_invoke
#23 mono_runtime_invoke
#24 scripting_method_invoke(ScriptingMethodPtr, ScriptingObjectPtr, ScriptingArguments&, ScriptingExceptionPtr*, bool)
#25 ScriptingInvocation::Invoke(ScriptingExceptionPtr*, bool)
#26 MonoBehaviour::HandleNotifications(void*, int, MessageData&)
#27 MessageHandler::HandleMessage(void*, unsigned int, MessageIdentifier const&, MessageData&)
#28 GameObject::SendMessageAny(MessageIdentifier const&, MessageData&)
#29 SendMessageToEveryone(MessageIdentifier const&, MessageData)
#30 NotifyPlayerQuit(bool)
#31 PlayerLoopController::ExitPlayMode()
#32 PlayerLoopController::SetIsPlaying(bool)
#33 Application::TickTimer()
#34 -[EditorApplication TickTimer]
#35 __NSFireTimer
#36 CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION
#37 __CFRunLoopDoTimer
#38 __CFRunLoopDoTimers
#39 __CFRunLoopRun
#40 CFRunLoopRunSpecific
#41 RunCurrentEventLoopInMode
#42 ReceiveNextEventCommon
#43 _BlockUntilNextEventMatchingListInModeWithFilter
#44 _DPSNextEvent
#45 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]
#46 -[NSApplication run]
#47 NSApplicationMain
#48 EditorMain(int, char const**)
#49 main
#50 start
Can you try updating Unity Transport to 2.0.2? We’ve fixed a few issues related to WebSockets where disconnect events would fail to be propagated properly (often resulting in the error you’re seeing).
After updating Unity Transport my problem was solved.
hello again Mr simon, this happens on udp connection. as well is there a fix i can do for unity transport 1.4.1.
disconnection events are not propagated correctly. so im still trying to send voice data to a disconnected client.
You can try applying this change to NGO. It won’t address the issue of disconnection events not being propagated properly, but it will at least stop sends to stale connections.