Skip to content

Scene NOB with ObserverCondition causes "object was initialized twice without being reset" error #1001

@maxkratt

Description

@maxkratt

Unity version: 6000.3.0f1

FishNet Version: 4.6.20

Discord Troubleshot Link/What I've tried: https://discord.com/channels/424284635074134018/1034477094731784302/1461392912938963138

Description:
When a scene network object stops being observed and then becomes observed again, it throws this error:

Object was initialized twice without being reset. Object Name [Cube] ObjectId [0] OwnerId [-1] GameObject HashCode [48414]
UnityEngine.Debug:LogError (object)
FishNet.Managing.Logging.LevelLoggingConfiguration:LogError (string) (at E:/New Development/Unity/CSP FPS FishNet/Assets/FishNet/Runtime/Managing/Logging/LevelLoggingConfiguration.cs:148)
FishNet.Managing.NetworkManager:InternalLogError (string) (at E:/New Development/Unity/CSP FPS FishNet/Assets/FishNet/Runtime/Managing/NetworkManager.Logging.cs:82)
FishNet.Managing.NetworkManagerExtensions:LogError (FishNet.Managing.NetworkManager,string) (at E:/New Development/Unity/CSP FPS FishNet/Assets/FishNet/Runtime/Managing/NetworkManager.Logging.cs:140)
FishNet.Object.NetworkObject:InitializeEarly (FishNet.Managing.NetworkManager,int,FishNet.Connection.NetworkConnection,bool) (at E:/New Development/Unity/CSP FPS FishNet/Assets/FishNet/Runtime/Object/NetworkObject/NetworkObject.cs:649)
FishNet.Managing.Client.ClientObjectCache:<Iterate>g__ProcessObject|13_0 (FishNet.Managing.Client.CachedNetworkObject,bool,int,FishNet.Managing.Client.ClientObjectCache/<>c__DisplayClass13_0&) (at E:/New Development/Unity/CSP FPS FishNet/Assets/FishNet/Runtime/Managing/Client/Object/ObjectCaching.cs:356)
FishNet.Managing.Client.ClientObjectCache:Iterate () (at E:/New Development/Unity/CSP FPS FishNet/Assets/FishNet/Runtime/Managing/Client/Object/ObjectCaching.cs:270)
FishNet.Managing.Client.ClientObjects:IterateObjectCache () (at E:/New Development/Unity/CSP FPS FishNet/Assets/FishNet/Runtime/Managing/Client/Object/ClientObjects.cs:531)
FishNet.Managing.Client.ClientManager:ParseReader (FishNet.Serializing.PooledReader,FishNet.Transporting.Channel,bool) (at E:/New Development/Unity/CSP FPS FishNet/Assets/FishNet/Runtime/Managing/Client/ClientManager.cs:560)
FishNet.Managing.Client.ClientManager:ParseReceived (FishNet.Transporting.ClientReceivedDataArgs) (at E:/New Development/Unity/CSP FPS FishNet/Assets/FishNet/Runtime/Managing/Client/ClientManager.cs:398)
FishNet.Managing.Client.ClientManager:Transport_OnClientReceivedData (FishNet.Transporting.ClientReceivedDataArgs) (at E:/New Development/Unity/CSP FPS FishNet/Assets/FishNet/Runtime/Managing/Client/ClientManager.cs:352)
FishNet.Transporting.Tugboat.Tugboat:HandleClientReceivedDataArgs (FishNet.Transporting.ClientReceivedDataArgs) (at E:/New Development/Unity/CSP FPS FishNet/Assets/FishNet/Runtime/Transporting/Transports/Tugboat/Tugboat.cs:290)
FishNet.Transporting.Tugboat.Client.ClientSocket:IterateIncoming () (at E:/New Development/Unity/CSP FPS FishNet/Assets/FishNet/Runtime/Transporting/Transports/Tugboat/Core/ClientSocket.cs:254)
FishNet.Transporting.Tugboat.Tugboat:IterateIncoming (bool) (at E:/New Development/Unity/CSP FPS FishNet/Assets/FishNet/Runtime/Transporting/Transports/Tugboat/Tugboat.cs:237)
FishNet.Managing.Transporting.TransportManager:IterateIncoming (bool) (at E:/New Development/Unity/CSP FPS FishNet/Assets/FishNet/Runtime/Managing/Transporting/TransportManager.cs:750)
FishNet.Managing.Timing.TimeManager:TryIterateData (bool) (at E:/New Development/Unity/CSP FPS FishNet/Assets/FishNet/Runtime/Managing/Timing/TimeManager.cs:1112)
FishNet.Managing.Timing.TimeManager:IncreaseTick () (at E:/New Development/Unity/CSP FPS FishNet/Assets/FishNet/Runtime/Managing/Timing/TimeManager.cs:733)
FishNet.Managing.Timing.TimeManager:<TickUpdate>g__MethodLogic|113_0 () (at E:/New Development/Unity/CSP FPS FishNet/Assets/FishNet/Runtime/Managing/Timing/TimeManager.cs:392)
FishNet.Managing.Timing.TimeManager:TickUpdate () (at E:/New Development/Unity/CSP FPS FishNet/Assets/FishNet/Runtime/Managing/Timing/TimeManager.cs:380)
FishNet.Transporting.NetworkReaderLoop:Update () (at E:/New Development/Unity/CSP FPS FishNet/Assets/FishNet/Runtime/Transporting/NetworkReaderLoop.cs:29)

Replication:

  1. Import example and launch a server window and a client window.
  2. Move the Cube object far away in the scene until it despawns on the client.
  3. Move the Cube back until it respawns for the client.
  4. See error on the client.

Expected Behaviour:
No error is logged

Other Notes:
It appears the NetworkObject doesn't have ResetState called on it
This doesn't happen playing in host mode
It happens for any type of ObserverCondition

Example File:
ResetBug.zip

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