Search Issue Tracker
Active
Votes
0
Found in
Not Applicable
Issue ID
UUM-141028
Regression
No
Distributed Authority intermittent client connect failures
Based on Forum-Issue-1717323 with a continued internal discussion here.
Description
I’m seeing an intermittent failure when starting a Distributed Authority session with Unity Services Multiplayer + NGO + UTP + Relay.
To debug it, I embedded the {{com.unity.services.multiplayer}} package locally so I could add instrumentation inside the package and also added a few traces in {{com.unity.netcode.gameobjects}} / Unity Transport. That let me compare a good run and a bad run at a fairly low level.
What happens in the good case:
- Lobby/session setup completes normally.
- Distributed Authority session creation succeeds.
- Relay join/allocation succeeds.
- UTP starts as client.
- Relay reaches {{{}Established{}}}.
- Relay layer receives {{{}Accepted{}}}.
- NGO then gets {{Connect}} / {{ClientConnected}} and the session proceeds normally.
What happens in the bad case:
- The flow is identical through lobby setup, Distributed Authority session creation, relay join/allocation, and UTP client startup.
- Relay also reaches {{{}Established{}}}.
- But the relay layer never receives {{{}Accepted{}}}.
- The client keeps sending connect requests until UTP eventually disconnects with {{{}MaxConnectionAttempts{}}}.
- NGO then reports client disconnected / startup canceled.
A few notes from instrumentation:
- Region resolution is the same in both runs.
- Distributed Authority session creation and relay allocation both succeed in both runs.
- The divergence seems to be specifically after relay establishment, in the Distributed Authority/approval/accept path.
So the failure appears to be:
- not lobby/session creation
- not region selection
- not relay allocation/join
- not basic UTP startup
It looks more like “relay established, but the connection is never accepted/approved”.
Has anyone seen this before, or does this pattern point to a known issue in the Distributed Authority/Relay/NGO handshake path? In particular, is there a known reason why a client would reach Relay {{Established}} but never receive {{{}Accepted{}}}, eventually failing with {{{}MaxConnectionAttempts{}}}?
Initial setup
(Describe the initial setup, and what project, branch, and version of Unity are you using)
Reproduction steps
(Describe in a bulleted list the steps that you are taking, or any other information to help us have the same result.)
Expected behaviour
(Describe in as much detail as possible what you expect to see happen, ideally with examples, screenshots, links, and logs.)
Actual behavior
(Describe in as much detail as possible what is actually happening, ideally with logs, screenshots, links etc.)
Logs and Links
(Add links to Yamato jobs, links to logs, and add a stack trace in this section)
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Active quality level set on a new Universal 2D project is not the default quality level when creating a new project
- Inspector Open button does nothing when navigating to a different folder with a locked asset
- Pre-generated XML serializers fail to deserialize types that use polymorphism when the Player is built with the IL2CPP scripting backend
- Editor crashes with error "Failed to present D3D11 swapchain due to device reset/removed" and Player freezes when rendering a particle system while using modified URP package on DX11
- Crash on Scripting::LogException when async HTTP callback executes after scripting domain teardown
Add comment