Skip to content

When a client loses connection to the server, an ArgumentOutOfRangeException is sometimes thrown #31

@msfredb7

Description

@msfredb7

I'm using 2.0.0-pre.2.

Here are the two logs on the client that lead to the exception (we can see that both logs appear occur on the same frame #17610):

[INFO] [2025-04-30/10:21:47 PM] [F17610]  Local client is stopping for UnityTransport.
    UnityEngine.Debug:Log (object)
    FishNet.Managing.Logging.LevelLoggingConfiguration:Log (string) (at ./Packages/com.firstgeargames.fishnet/Runtime/Managing/Logging/LevelLoggingConfiguration.cs:109)
    FishNet.Managing.NetworkManager:InternalLog (string) (at ./Packages/com.firstgeargames.fishnet/Runtime/Managing/NetworkManager.Logging.cs:54)
    FishNet.Managing.NetworkManagerExtensions:Log (FishNet.Managing.NetworkManager,string) (at ./Packages/com.firstgeargames.fishnet/Runtime/Managing/NetworkManager.Logging.cs:123)
    FishNet.Managing.Client.ClientManager:Transport_OnClientConnectionState (FishNet.Transporting.ClientConnectionStateArgs) (at ./Packages/com.firstgeargames.fishnet/Runtime/Managing/Client/ClientManager.cs:327)
    FishNet.Transporting.UTP.UnityTransport:HandleClientConnectionState (FishNet.Transporting.ClientConnectionStateArgs) (at ./Library/PackageCache/com.alven.fishnet.unitytransport/UnityTransport.cs:1708)
    FishNet.Transporting.UTP.UnityTransport:SetClientConnectionState (FishNet.Transporting.LocalConnectionState) (at ./Library/PackageCache/com.alven.fishnet.unitytransport/UnityTransport.cs:1967)
    FishNet.Transporting.UTP.UnityTransport:DisconnectLocalClient () (at ./Library/PackageCache/com.alven.fishnet.unitytransport/UnityTransport.cs:994)
    FishNet.Transporting.UTP.UnityTransport:StopClient () (at ./Library/PackageCache/com.alven.fishnet.unitytransport/UnityTransport.cs:1982)
    FishNet.Transporting.UTP.UnityTransport:StopConnection (bool) (at ./Library/PackageCache/com.alven.fishnet.unitytransport/UnityTransport.cs:1837)
    FishNet.Managing.Client.ClientManager:StopConnection () (at ./Packages/com.firstgeargames.fishnet/Runtime/Managing/Client/ClientManager.cs:263)
    FishNet.Managing.Client.ClientManager:ParseReader (FishNet.Serializing.PooledReader,FishNet.Transporting.Channel,bool) (at ./Packages/com.firstgeargames.fishnet/Runtime/Managing/Client/ClientManager.cs:512)
    FishNet.Managing.Client.ClientManager:ParseReceived (FishNet.Transporting.ClientReceivedDataArgs) (at ./Packages/com.firstgeargames.fishnet/Runtime/Managing/Client/ClientManager.cs:378)
    FishNet.Managing.Client.ClientManager:Transport_OnClientReceivedData (FishNet.Transporting.ClientReceivedDataArgs) (at ./Packages/com.firstgeargames.fishnet/Runtime/Managing/Client/ClientManager.cs:339)
    FishNet.Transporting.UTP.UnityTransport:HandleClientReceivedDataArgs (FishNet.Transporting.ClientReceivedDataArgs) (at ./Library/PackageCache/com.alven.fishnet.unitytransport/UnityTransport.cs:1743)
    FishNet.Transporting.UTP.UnityTransport:HandleTransportDataEvent (ulong,System.ArraySegment`1<byte>,Unity.Networking.Transport.NetworkPipeline) (at ./Library/PackageCache/com.alven.fishnet.unitytransport/UnityTransport.cs:1623)
    FishNet.Transporting.UTP.UnityTransport:ReceiveMessages (ulong,Unity.Networking.Transport.NetworkPipeline,Unity.Collections.DataStreamReader) (at ./Library/PackageCache/com.alven.fishnet.unitytransport/UnityTransport.cs:816)
    FishNet.Transporting.UTP.UnityTransport:ProcessEvent () (at ./Library/PackageCache/com.alven.fishnet.unitytransport/UnityTransport.cs:860)
    FishNet.Transporting.UTP.UnityTransport:IterateIncoming () (at ./Library/PackageCache/com.alven.fishnet.unitytransport/UnityTransport.cs:893)
    FishNet.Transporting.UTP.UnityTransport:IterateIncoming (bool) (at ./Library/PackageCache/com.alven.fishnet.unitytransport/UnityTransport.cs:1728)
    FishNet.Managing.Transporting.TransportManager:IterateIncoming (bool) (at ./Packages/com.firstgeargames.fishnet/Runtime/Managing/Transporting/TransportManager.cs:744)
    FishNet.Managing.Timing.TimeManager:TryIterateData (bool) (at ./Packages/com.firstgeargames.fishnet/Runtime/Managing/Timing/TimeManager.cs:1065)
    FishNet.Managing.Timing.TimeManager:IncreaseTick () (at ./Packages/com.firstgeargames.fishnet/Runtime/Managing/Timing/TimeManager.cs:703)
    FishNet.Managing.Timing.TimeManager:<TickUpdate>g__MethodLogic|101_0 () (at ./Packages/com.firstgeargames.fishnet/Runtime/Managing/Timing/TimeManager.cs:380)
    FishNet.Managing.Timing.TimeManager:TickUpdate () (at ./Packages/com.firstgeargames.fishnet/Runtime/Managing/Timing/TimeManager.cs:370)
    FishNet.Transporting.NetworkReaderLoop:Update () (at ./Packages/com.firstgeargames.fishnet/Runtime/Transporting/NetworkReaderLoop.cs:28)

[EXCEPTION] [2025-04-30/10:21:47 PM] [F17610]  ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
    FishNet.Transporting.UTP.UnityTransport.HandleTransportDataEvent (System.UInt64 clientId, System.ArraySegment`1[T] data, Unity.Networking.Transport.NetworkPipeline pipeline) (at ./Library/PackageCache/com.alven.fishnet.unitytransport/UnityTransport.cs:1626)
    FishNet.Transporting.UTP.UnityTransport.ReceiveMessages (System.UInt64 clientId, Unity.Networking.Transport.NetworkPipeline pipeline, Unity.Collections.DataStreamReader dataReader) (at ./Library/PackageCache/com.alven.fishnet.unitytransport/UnityTransport.cs:816)
    FishNet.Transporting.UTP.UnityTransport.ProcessEvent () (at ./Library/PackageCache/com.alven.fishnet.unitytransport/UnityTransport.cs:860)
    FishNet.Transporting.UTP.UnityTransport.ShutdownInternals () (at ./Library/PackageCache/com.alven.fishnet.unitytransport/UnityTransport.cs:1264)
    FishNet.Transporting.UTP.UnityTransport.DisconnectLocalClient () (at ./Library/PackageCache/com.alven.fishnet.unitytransport/UnityTransport.cs:1007)
    FishNet.Transporting.UTP.UnityTransport.StopClient () (at ./Library/PackageCache/com.alven.fishnet.unitytransport/UnityTransport.cs:1982)
    FishNet.Transporting.UTP.UnityTransport.StopConnection (System.Boolean server) (at ./Library/PackageCache/com.alven.fishnet.unitytransport/UnityTransport.cs:1837)
    FishNet.Managing.Client.ClientManager.StopConnection () (at ./Packages/com.firstgeargames.fishnet/Runtime/Managing/Client/ClientManager.cs:263)
    FishNet.Managing.Client.ClientManager.ParseReader (FishNet.Serializing.PooledReader reader, FishNet.Transporting.Channel channel, System.Boolean print) (at ./Packages/com.firstgeargames.fishnet/Runtime/Managing/Client/ClientManager.cs:512)
    FishNet.Managing.Client.ClientManager.ParseReceived (FishNet.Transporting.ClientReceivedDataArgs args) (at ./Packages/com.firstgeargames.fishnet/Runtime/Managing/Client/ClientManager.cs:378)
    FishNet.Managing.Client.ClientManager.Transport_OnClientReceivedData (FishNet.Transporting.ClientReceivedDataArgs args) (at ./Packages/com.firstgeargames.fishnet/Runtime/Managing/Client/ClientManager.cs:339)
    FishNet.Transporting.UTP.UnityTransport.HandleClientReceivedDataArgs (FishNet.Transporting.ClientReceivedDataArgs receivedDataArgs) (at ./Library/PackageCache/com.alven.fishnet.unitytransport/UnityTransport.cs:1743)
    FishNet.Transporting.UTP.UnityTransport.HandleTransportDataEvent (System.UInt64 clientId, System.ArraySegment`1[T] data, Unity.Networking.Transport.NetworkPipeline pipeline) (at ./Library/PackageCache/com.alven.fishnet.unitytransport/UnityTransport.cs:1623)
    FishNet.Transporting.UTP.UnityTransport.ReceiveMessages (System.UInt64 clientId, Unity.Networking.Transport.NetworkPipeline pipeline, Unity.Collections.DataStreamReader dataReader) (at ./Library/PackageCache/com.alven.fishnet.unitytransport/UnityTransport.cs:816)
    FishNet.Transporting.UTP.UnityTransport.ProcessEvent () (at ./Library/PackageCache/com.alven.fishnet.unitytransport/UnityTransport.cs:860)
    FishNet.Transporting.UTP.UnityTransport.IterateIncoming () (at ./Library/PackageCache/com.alven.fishnet.unitytransport/UnityTransport.cs:893)
    FishNet.Transporting.UTP.UnityTransport.IterateIncoming (System.Boolean server) (at ./Library/PackageCache/com.alven.fishnet.unitytransport/UnityTransport.cs:1728)
    FishNet.Managing.Transporting.TransportManager.IterateIncoming (System.Boolean asServer) (at ./Packages/com.firstgeargames.fishnet/Runtime/Managing/Transporting/TransportManager.cs:744)
    FishNet.Managing.Timing.TimeManager.TryIterateData (System.Boolean incoming) (at ./Packages/com.firstgeargames.fishnet/Runtime/Managing/Timing/TimeManager.cs:1065)
    FishNet.Managing.Timing.TimeManager.IncreaseTick () (at ./Packages/com.firstgeargames.fishnet/Runtime/Managing/Timing/TimeManager.cs:703)
    FishNet.Managing.Timing.TimeManager.<TickUpdate>g__MethodLogic|101_0 () (at ./Packages/com.firstgeargames.fishnet/Runtime/Managing/Timing/TimeManager.cs:380)
    FishNet.Managing.Timing.TimeManager.TickUpdate () (at ./Packages/com.firstgeargames.fishnet/Runtime/Managing/Timing/TimeManager.cs:370)
    FishNet.Transporting.NetworkReaderLoop.Update () (at ./Packages/com.firstgeargames.fishnet/Runtime/Transporting/NetworkReaderLoop.cs:28)

The exception does not occur all the time, so I'm assuming this is a timing issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions