Describe the bug
When merging fleets at Shuji (Ekota IV-C), the following NRE was produced. The resulting TF One One showed with several missing, "(30/0)" ships - after relogging, correct number of (42/1) returned along with missing ships.
Log Excerpt:
Exception System.ArgumentException: Unable to sort because the IComparer.Compare() method returns inconsistent results. Either a value does not compare equal to itself, or one value repeatedly compared to another value yields different results. IComparer: 'Conquest.UI.FleetList.TacsitGroupItem+ShipItemComparer'.
at System.Collections.Generic.IntrospectiveSortUtilities.ThrowOrIgnoreBadComparer (System.Object comparer) [0x0000b] in <695d1cc93cca45069c528c15c9fdd749>:0
at System.Collections.Generic.ArraySortHelper`1[T].Sort (T[] keys, System.Int32 index, System.Int32 length, System.Collections.Generic.IComparer`1[T] comparer) [0x00022] in <695d1cc93cca45069c528c15c9fdd749>:0
at System.Array.Sort[T] (T[] array, System.Int32 index, System.Int32 length, System.Collections.Generic.IComparer`1[T] comparer) [0x00048] in <695d1cc93cca45069c528c15c9fdd749>:0
at System.Collections.Generic.List`1[T].Sort (System.Int32 index, System.Int32 count, System.Collections.Generic.IComparer`1[T] comparer) [0x0002a] in <695d1cc93cca45069c528c15c9fdd749>:0
at System.Collections.Generic.List`1[T].Sort (System.Collections.Generic.IComparer`1[T] comparer) [0x00008] in <695d1cc93cca45069c528c15c9fdd749>:0
at Conquest.UI.FleetList.TacsitGroupItem.SortMembers () [0x00001] in D:\Projects\Unity\Nebulous Conquest\Assets\Source\Conquest\UI\FleetList\TacsitGroupItem.cs:124
at Conquest.UI.FleetList.TacsitGroupItem.HandleShipAdded (Conquest.Units.ShipUnit ship) [0x00009] in D:\Projects\Unity\Nebulous Conquest\Assets\Source\Conquest\UI\FleetList\TacsitGroupItem.cs:92
at Conquest.Units.ShipGroup.HandleMemberListChanged (Mirror.SyncList`1+Operation[T] op, System.Int32 itemIndex, Conquest.Units.ShipUnit oldItem, Conquest.Units.ShipUnit newItem) [0x0002c] in D:\Projects\Unity\Nebulous Conquest\Assets\Source\Conquest\Units\ShipGroup.cs:969
at Networking.NetBehaviourSyncList`1[TScript].HandleChanges (Mirror.SyncList`1+Operation[T] op, System.Int32 itemIndex, Networking.NetScriptAddress oldItem, Networking.NetScriptAddress newItem) [0x000f7] in D:\Projects\Unity\Nebulous Conquest\Assets\Source\Networking\NetBehaviourSyncList.cs:90
at Mirror.SyncList`1[T].OnDeserializeDelta (Mirror.NetworkReader reader) [0x0014b] in D:\Projects\Unity\Nebulous Conquest\Assets\Mirror\Runtime\SyncList.cs:236
at Networking.NetBehaviourSyncList`1[TScript].OnDeserializeDelta (Mirror.NetworkReader reader) [0x00000] in D:\Projects\Unity\Nebulous Conquest\Assets\Source\Networking\NetBehaviourSyncList.cs:38
at Mirror.NetworkBehaviour.DeSerializeObjectsDelta (Mirror.NetworkReader reader) [0x0002c] in D:\Projects\Unity\Nebulous Conquest\Assets\Mirror\Runtime\NetworkBehaviour.cs:681
at Mirror.NetworkBehaviour.OnDeserialize (Mirror.NetworkReader reader, System.Boolean initialState) [0x00013] in D:\Projects\Unity\Nebulous Conquest\Assets\Mirror\Runtime\NetworkBehaviour.cs:600
at Mirror.NetworkIdentity.OnDeserializeSafely (Mirror.NetworkBehaviour comp, Mirror.NetworkReader reader, System.Boolean initialState) [0x00019] in D:\Projects\Unity\Nebulous Conquest\Assets\Mirror\Runtime\NetworkIdentity.cs:992
UnityEngine.StackTraceUtility:ExtractStackTrace () (at C:/buildslave/unity/build/Runtime/Export/Scripting/StackTrace.cs:37)
UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
UnityEngine.Logger:Log (UnityEngine.LogType,object)
UnityEngine.Debug:LogError (object)
Mirror.NetworkIdentity:OnDeserializeSafely (Mirror.NetworkBehaviour,Mirror.NetworkReader,bool) (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/NetworkIdentity.cs:997)
Mirror.NetworkIdentity:OnDeserializeAllSafely (Mirror.NetworkReader,bool) (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/NetworkIdentity.cs:1038)
Mirror.NetworkClient:OnEntityStateMessage (Mirror.EntityStateMessage) (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/NetworkClient.cs:1253)
Mirror.NetworkClient/<>c__DisplayClass46_0`1<Mirror.EntityStateMessage>:<RegisterHandler>g__HandlerWrapped|0 (Mirror.NetworkConnection,Mirror.EntityStateMessage) (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/NetworkClient.cs:454)
Mirror.MessagePacking/<>c__DisplayClass6_0`2<Mirror.EntityStateMessage, Mirror.NetworkConnection>:<WrapHandler>b__0 (Mirror.NetworkConnection,Mirror.NetworkReader,int) (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/MessagePacking.cs:118)
Mirror.NetworkClient:UnpackAndInvoke (Mirror.NetworkReader,int) (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/NetworkClient.cs:274)
Mirror.NetworkClient:OnTransportData (System.ArraySegment`1<byte>,int) (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/NetworkClient.cs:342)
Mirror.FizzySteam.NextClient/<>c__DisplayClass26_0:<CreateClient>b__2 (byte[],int) (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/Transport/FizzyFacepunch/NextClient.cs:41)
Mirror.FizzySteam.NextClient:OnMessageReceived (intptr,int) (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/Transport/FizzyFacepunch/NextClient.cs:115)
FizzyConnectionManager:OnMessage (intptr,int,long,long,int) (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/Transport/FizzyFacepunch/FizzyConnectionManager.cs:10)
Steamworks.ConnectionManager:ReceiveMessage (intptr)
Steamworks.ConnectionManager:Receive (int)
Mirror.FizzySteam.NextClient:ReceiveData () (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/Transport/FizzyFacepunch/NextClient.cs:175)
Mirror.FizzySteam.FizzyFacepunch:ClientEarlyUpdate () (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/Transport/FizzyFacepunch/FizzyFacepunch.cs:59)
Mirror.NetworkClient:NetworkEarlyUpdate () (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/NetworkClient.cs:1345)
Mirror.NetworkLoop:NetworkEarlyUpdate () (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/NetworkLoop.cs:186)
(Filename: D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/NetworkIdentity.cs Line: 997)
OnDeserialize was expected to read 232 instead of 124 bytes for object:Group - One One component=Conquest.Units.ShipGroup sceneId=0. Make sure that OnSerialize and OnDeserialize write/read the same amount of data in all cases.
UnityEngine.StackTraceUtility:ExtractStackTrace () (at C:/buildslave/unity/build/Runtime/Export/Scripting/StackTrace.cs:37)
UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
UnityEngine.Logger:Log (UnityEngine.LogType,object)
UnityEngine.Debug:LogWarning (object)
Mirror.NetworkIdentity:OnDeserializeSafely (Mirror.NetworkBehaviour,Mirror.NetworkReader,bool) (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/NetworkIdentity.cs:1011)
Mirror.NetworkIdentity:OnDeserializeAllSafely (Mirror.NetworkReader,bool) (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/NetworkIdentity.cs:1038)
Mirror.NetworkClient:OnEntityStateMessage (Mirror.EntityStateMessage) (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/NetworkClient.cs:1253)
Mirror.NetworkClient/<>c__DisplayClass46_0`1<Mirror.EntityStateMessage>:<RegisterHandler>g__HandlerWrapped|0 (Mirror.NetworkConnection,Mirror.EntityStateMessage) (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/NetworkClient.cs:454)
Mirror.MessagePacking/<>c__DisplayClass6_0`2<Mirror.EntityStateMessage, Mirror.NetworkConnection>:<WrapHandler>b__0 (Mirror.NetworkConnection,Mirror.NetworkReader,int) (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/MessagePacking.cs:118)
Mirror.NetworkClient:UnpackAndInvoke (Mirror.NetworkReader,int) (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/NetworkClient.cs:274)
Mirror.NetworkClient:OnTransportData (System.ArraySegment`1<byte>,int) (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/NetworkClient.cs:342)
Mirror.FizzySteam.NextClient/<>c__DisplayClass26_0:<CreateClient>b__2 (byte[],int) (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/Transport/FizzyFacepunch/NextClient.cs:41)
Mirror.FizzySteam.NextClient:OnMessageReceived (intptr,int) (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/Transport/FizzyFacepunch/NextClient.cs:115)
FizzyConnectionManager:OnMessage (intptr,int,long,long,int) (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/Transport/FizzyFacepunch/FizzyConnectionManager.cs:10)
Steamworks.ConnectionManager:ReceiveMessage (intptr)
Steamworks.ConnectionManager:Receive (int)
Mirror.FizzySteam.NextClient:ReceiveData () (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/Transport/FizzyFacepunch/NextClient.cs:175)
Mirror.FizzySteam.FizzyFacepunch:ClientEarlyUpdate () (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/Transport/FizzyFacepunch/FizzyFacepunch.cs:59)
Mirror.NetworkClient:NetworkEarlyUpdate () (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/NetworkClient.cs:1345)
Mirror.NetworkLoop:NetworkEarlyUpdate () (at D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/NetworkLoop.cs:186)
(Filename: D:/Projects/Unity/Nebulous Conquest/Assets/Mirror/Runtime/NetworkIdentity.cs Line: 1011)
To Reproduce
With three fleets present at Shoji...
Shift-selected two of the fleets on the TacMap (I don't recall precisely, but likely TF Nine and TF One Zero)
Right-clicked TF One One
Selected to join the TFs
See error
Expected behavior
TFs should have joined with no error, and all ships shown on TACSIT.
Describe the bug When merging fleets at Shuji (Ekota IV-C), the following NRE was produced. The resulting TF One One showed with several missing, "(30/0)" ships - after relogging, correct number of (42/1) returned along with missing ships.
Log Excerpt:
To Reproduce With three fleets present at Shoji...
Expected behavior TFs should have joined with no error, and all ships shown on TACSIT.
Attachments Attach any screenshots, logs, fleet files, etc that may help. Save: Thursday_Game_33_Turn_2_Tasking_Phase.zip
Full log: 2024-05-24-fleetmerge.log