Skip to content

fix: NetworkVariable change prior to ownership change using distributed authority topology fails to sync NetworkVariable - #4107

Merged
NoelStephensUnity merged 3 commits into
develop-2.0.0from
fix/UUM-148291/networkvariable-change-before-ownership-change
Jul 28, 2026
Merged

fix: NetworkVariable change prior to ownership change using distributed authority topology fails to sync NetworkVariable#4107
NoelStephensUnity merged 3 commits into
develop-2.0.0from
fix/UUM-148291/networkvariable-change-before-ownership-change

Conversation

@NoelStephensUnity

@NoelStephensUnityNoelStephensUnity commented Jul 27, 2026

Copy link
Copy Markdown
Member

Purpose of this PR

This resolves the issue where in a distributed authority session changing a NetworkVariable prior to changing ownership in the same call-stack would result in the NetworkVariable not being synchronized.

Jira ticket

UUM-148291

Changelog

  • Fixed: Issue where in a distributed authority session changing a NetworkVariable prior to changing ownership in the same call-stack would result in the NetworkVariable not being synchronized.

Documentation

  • No documentation changes or additions were necessary.

Testing & QA (How your changes can be verified during release Playtest)

Functional Testing

Manual testing :

Automated tests:

  • Covered by existing automated tests
  • Covered by new automated tests
    • WIP

Does the change require QA team to:

  • Review automated tests?
  • Execute manual tests?
  • Provide feedback about the PR?

If any boxes above are checked the QA team will be automatically added as a PR reviewer.

Up-port

This will require an up-port.

Backports

No backport is required.

This resolves the issue where in a distributed authority session changing a NetworkVariable prior to changing ownership in the same call-stack would result in the NetworkVariable not being synchronized.
Removing the additional authority check as it is not needed.
Fixing a very edge case scenario that shouldn't happen but in the event it does when finding objects by type within a specific scene, if the scene is invalid then use an empty array for the found objects.
@codecov-github-com

codecov-github-comBot commented Jul 27, 2026

Copy link
Copy Markdown

Codecov Report

All modified and coverable lines are covered by tests ✅

@@ Coverage Diff @@## develop-2.0.0 #4107 +/- ##
=================================================
+ Coverage 73.87% 73.89% +0.01% 
=================================================
Files 172 172 Lines 28013 28020 +7 =================================================
+ Hits 20695 20705 +10 + Misses 7318 7315 -3 
FlagCoverage Δ
NGOv2_project_testproject_ubuntu_pinnedTrunk73.68% <100.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing linesCoverage Δ
...ty.netcode.gameobjects/Runtime/Core/FindObjects.cs84.31% <100.00%> (ø)
....netcode.gameobjects/Runtime/Core/NetworkObject.cs74.98% <100.00%> (+0.09%)⬆️

... and 1 file with indirect coverage changes

ComponentsCoverage Δ
com.unity.netcode.gameobjects73.89% <100.00%> (+0.01%)⬆️

ℹ️ Need help interpreting these results?

@michalChrobotmichalChrobot left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good from what I understand

@FelixWentworth-UnityFelixWentworth-Unity left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

checked changes against repro project - lgtm!

@NoelStephensUnity
NoelStephensUnity merged commit 3a09971 into develop-2.0.0Jul 28, 2026
26 checks passed
@NoelStephensUnity
NoelStephensUnity deleted the fix/UUM-148291/networkvariable-change-before-ownership-change branch July 28, 2026 14:33
michalChrobot added a commit that referenced this pull request Aug 3, 2026
* chore: Adding a note about DontDestroyOnLoad usage for Networked scene objects (#4070)
Docs correction
* ci: Split code coverage into Package Test and Project Test jobs (#4101)
* ci: Split code coverage into Package Test and Project Test jobs
Convert the existing coverage job to [Code Coverage] Package Test - NGO [ubuntu, trunk] and add [Code Coverage] Project Test - NGO testproject [ubuntu, trunk]. Wire Package Test into PR/nightly triggers and Project Test into the weekly run.
* ci: Run both coverage jobs on PR and nightly
* ci: Use pinnedTrunk for PR coverage and drop package-test job
* chore: Point CMB resources at new monorepo (#4106)
* chore: Point CMB resources at new monorepo
* fix: NetworkVariable change prior to ownership change using distributed authority topology fails to sync NetworkVariable (#4107)
* fix
This resolves the issue where in a distributed authority session changing a NetworkVariable prior to changing ownership in the same call-stack would result in the NetworkVariable not being synchronized.
* fix - update
Removing the additional authority check as it is not needed.
Fixing a very edge case scenario that shouldn't happen but in the event it does when finding objects by type within a specific scene, if the scene is invalid then use an empty array for the found objects.
* fix: spawn disabled in scene placed and network prefab registration (#4093)
* fix
- Issue where disabled in-scene placed NetworkObjects could not be spawned after starting a session.
- Issue where users are allowed to spawn a NetworkObject with a GlobalObjectIdHash value of 0 (zero).
* update
NetworkAnimator not pointing to an animator within awake now just logs a warning as opposed to an error.
* test
Updating tests based on the fixes applied to this branch.
A large portion is related to some integration tests trying to spawn NetworkObjects with a GlobalObjectIdHash value of zero(0).
* update
Style and providing internal write access to the prefabs list.
* test
Potentially last iteration on fixing/updating integration tests.
* test - fix
Using the fixed version of NetworkPrefabHandlerSpawnAndSynchronizeTests.
Fixing some issues with prefab and handler creation.
* style
Fixing formatting issues.
* style
Fixing some standards formatting related issues.
* style
removing trailing spaces.
* style
Super weird one... but using ? as opposed to an if null check.
* style
Removing commented out code that is no longer needed/used.
* update
Committing suggested changes.
Co-authored-by: Emma <emma.mcmillan@unity3d.com>
* update
Applying changes based on review discussion.
* update
Making adjustments based on review discussion.
* style
Removing field that is no longer valid.
Moving Awake higher in NetworkObject as it has become wedged in the middle of the code.
* update
Adding change log entries.
* update
Inverting logic (oops)
* doc
Updating NetworkObject documentation and in-scene placed documentation.
* Update documentation for the two types of NetworkObjects
Clarified the categories of NetworkObjects and their requirements. Added details for dynamically instantiated and in-scene placed NetworkObjects.
* style
White spaces!
* Apply suggestions from code review
Co-authored-by: Amy Reeve <amy.reeve@unity3d.com>
---------
Co-authored-by: Emma <emma.mcmillan@unity3d.com>
Co-authored-by: Amy Reeve <amy.reeve@unity3d.com>
* docs: Docs-wide link fixes and xref update (#4102)
* Docs-wide link fixes and xref update
* Typo in API docs
* chore: Add NGO_EXCLUDE_HEAVY_TESTS define (#4114)
Add NGO_EXCLUDE_HEAVY_TESTS
---------
Co-authored-by: Nikos <nikos@unity3d.com>
Co-authored-by: Emma <emma.mcmillan@unity3d.com>
Co-authored-by: Noel Stephens <noel.stephens@unity3d.com>
Co-authored-by: Amy Reeve <amy.reeve@unity3d.com>
Co-authored-by: mnachury-unity <120488254+mnachury-unity@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@NoelStephensUnity@michalChrobot@FelixWentworth-Unity