Skip to content

fix(messaging): ensure TimeSyncMessage uses unreliable delivery (#4249) - #4253

Open
reginaldalfret wants to merge 1 commit into
Unity-Technologies:develop-3.x.xfrom
reginaldalfret:fix/timesync-unreliable-delivery
Open

reginaldalfret wants to merge 1 commit into
Unity-Technologies:develop-3.x.xfrom
reginaldalfret:fix/timesync-unreliable-delivery

Conversation

@reginaldalfret

Copy link
Copy Markdown

Purpose of this PR

Fixes #4249.

Under packet loss, TimeSyncMessage was sent reliably using NetworkDelivery.ReliableFragmentedSequenced because k_SkipMessageTypes omitted NetworkMessageTypes.TimeSync (despite the code summary explicitly stating it should be skipped due to always using unreliable delivery). Consequently, delayed retransmitted time sync messages caused the client clock to hard-reset backwards when passing HardResetThresholdSec, causing owned NetworkTransforms to stall until the clock caught up.

This PR:

  1. Adds NetworkMessageTypes.TimeSync to k_SkipMessageTypes and explicitly registers it as NetworkDelivery.UnreliableSequenced in MessageDelivery.UpdateMessageTypes().
  2. Updates MessageDelivery.GetDelivery lookups to resolve mapped delivery types cleanly.
  3. Guards TimeSyncMessage.Handle against applying stale out-of-order time sync messages.
  4. Adds regression unit tests in MessageRegistrationTests.cs.
  5. Updates CHANGELOG.md.

Changelog

Documentation

  • No documentation changes or additions were necessary.

Testing & QA

Automated tests:

  • Covered by new automated tests (WhenCheckingTimeSyncMessageDelivery_UsesUnreliableSequencedDelivery, WhenCheckingTimeSyncMessageDeliveryType_UsesUnreliableSequencedDelivery)

…y-Technologies#4249)

- Add NetworkMessageTypes.TimeSync to k_SkipMessageTypes and explicitly map it to NetworkDelivery.UnreliableSequenced in MessageDelivery.UpdateMessageTypes()
- Guard TimeSyncMessage.Handle against stale or delayed out-of-order time sync messages
- Add unit tests verifying TimeSyncMessage delivery is UnreliableSequenced
- Update CHANGELOG.md
@reginaldalfret
reginaldalfret requested a review from a team as a code owner November 14, 2026 10:47
@cla-assistant-unity

cla-assistant-unity Bot commented Nov 14, 2026 •

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

TimeSyncMessage is sent reliably, so a late one resets the client clock backwards and stalls its NetworkTransforms

1 participant