> For the complete documentation index, see [llms.txt](https://docs.coherence.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.coherence.io/support/release-notes.md).

# Release notes

## 2.2

Published 29.07.2026

{% hint style="success" %}
If you're upgrading to 2.1, take a look at the [2.2 Upgrade Guide](/support/upgrading-unity-sdk/upgrade-2.1-greater-than-2.2.md)!
{% endhint %}

**Added**

* CoherenceBridge inspector shows Cloud Service information, including logged-in player account.
* Added descriptive `ConnectionException` surfaced via `CoherenceBridge.onConnectionError` when connecting to an unreachable Replication Server (e.g. not running, wrong port, or no route to host). Previously a raw `SocketException` escaped to the player loop. The error message now names the Replication Server endpoint.
* Added `IReplicationServer.IsReady` property that indicates when the Replication Server is ready to accept connections.
* Added `ICoherenceBridge.IsDestroyed` property, mirroring `ICoherenceSync.IsDestroyed`.
* On Windows, the Hub's copy RS command button now shows a context menu allowing to copy the command for Bash/CMD or PowerShell.
* Added `ConnectionSettings` to `CoherenceSceneLoaderConfig` and `CoherenceSceneData`, allowing custom connection settings (e.g. disconnect timeout) to be passed through `CoherenceSceneLoader` to `CoherenceScene`.
* CoherenceSync.SendCommand overloads that take a component instance.
* Baked command extension methods: commands can be invoked within the components that define them via `this.MethodName(MessageTarget, args...)` or `myScript.MethodName(MessageTarget, args...)`
* Entity references no longer limited to CoherenceSync, GameObject or Transform. Can use any Component subtype.
* A warning icon is now drawn in Play Mode in the Hierarchy window next to GameObjects containing a CoherenceBridge component when no baked code is found.
* Added help texts to Tag Query and Global Query components' editors.
* Added `CoherenceSyncConfigUtils.AddConfigToAddressablesGroup` public editor API to programmatically add a `CoherenceSyncConfig` to the Addressables group of its associated Prefab.
* A warning is now logged to the Console if DotNetWebSocket is closed unexpectedly by the server (e.g. due to MessageTooBig).
* AutoSimulatorConnection can now automatically retry fetching worlds up to 10 times when an empty result is returned. This is because if a World is still starting, it won't be included in the results.
* Added a confirmation dialog before Simulator builds when **Strip Assets** is enabled, warning that assets may not be restored automatically if the build is interrupted or Unity crashes.
* Added a **Restore Assets** button and warning in the Simulator build options UI when an orphaned asset backup is detected from a previously interrupted build, allowing assets to be recovered without manual file operations. Also added a button to open the backup location folder.
* Added CoherenceSync.TransferAuthorityAsync and CoherenceSync.AdoptAsync that can be awaited to easily defer execution until the request has completed or failed (similar to the existing CoherenceSync.RequestAuthorityAsync).
* Added `CoherenceBridge.LastEndpointData`, `CoherenceBridge.LastRoomData`, and `CoherenceBridge.LastWorldData` properties, exposing the connection data from the most recent connection attempt. Useful for accessing Room/World info after disconnecting.
* Added `Script Debugging`, `Auto Connect Profiler` and `Deep Profiling Support` to **Simulator Build Options** in the coherence Hub window.
* Added `RoomData` overloads for `CloudRoomsService.RemoveRoom`, `RemoveRoomAsync`, `UnlistRoom`, `UnlistRoomAsync`, `ReplicationServerRoomsService.RemoveRoom`, `RemoveRoomAsync`, and the corresponding `IRoomsService` members. The `ulong uniqueID, string secret` overloads are now deprecated.
* Added option to customize web port (`--web-port`) to ReplicationServerConfig.

\
**Changed**

{% hint style="warning" %}

* **Breaking**: Renamed `LobbiesService.JoinLobby` and `JoinLobbyAsync` parameter from `secret` to `password`. Callers using named arguments must update to `password:`. The underlying JSON request field has also been renamed from `"secret"` to `"password"` to match the backend API.

* **Breaking**: Part of the virtual `CoherenceInputSimulation` API made public for external control needs, e.g. replay system.
  {% endhint %}

* Improved Perforce support for SDK-generated editor files.

* Renamed Coherence.Log/ to Coherence.Logging/ to avoid common `.gitignore` rules affecting SDK installations.

* Warnings about private `[Sync]` fields and `[Command]` methods are now re-emitted after every domain reload and shown as persistent helpboxes in the CoherenceSync inspector, making them harder to miss.

* Non-interpolated bindings no longer re-apply the last network value every frame. Values are applied once when a new sample arrives, reducing per-frame overhead. Interpolated bindings also skip work when interpolation has caught up. **Note:** unauthorized local writes to remote entity fields are no longer silently reverted each frame.

* A more descriptive error message is now logged if an attempt is made to send a command targeting a component that isn't attached to the networked entity at all.

* The 'Add Config to Addressables Group' prompt in CoherenceSync and CoherenceSyncConfig inspectors has been replaced with a compact button and tooltip.

* The tooltip for the coherence sync button in the project window now shows multiple projects when Cloud Project Mode is set to `Development, Release`.

* Renamed SimulatorBuildPipeline.PrepareHeadlessBuild to PrepareBuild.

* Renamed SimulatorBuildPipeline.BuildHeadlessLinuxClientAsync to BuildAndUpload.

* `CloudRoomsService` async methods now wait for previous request cooldowns to expire before sending a new request, avoiding `TooManyRequests` exceptions automatically.

* CoherenceBridge now explains better how it interacts with CoherenceCloudLogin, and what it offers regarding coherence Cloud initialization.

\
**Fixed**

* Fixed `CommandsHandler` throwing an exception when trying to log a warning about a destroyed `CoherenceSync`.
* Fixed Welcome Window and CoherenceHub being opened in MPPM virtual player instances, causing unsupported window warnings.
* Fixed warnings about moved asset references when importing Matchmaking UI sample from Package Manager.
* Fixed potential dead-locking issues in batch mode due to usage of Task.Wait.
* CoherenceBridgeStore.DeregisterBridge can now also be used to deregister the main bridge.
* Fixed issue where Optimization window's binding menu would list items that should have only been shown for Prefab variants for non-Prefab variants.
* Any exceptions occurring in synced property setters or methods executed by commands are now caught and won't interfere with networking of other bindings.
* Exceptions thrown by INetworkObjectInstantiator.Instantiatiate are now caught and converted into descriptive warnings.
* When multiple instances of the same application are running simultaneous on the same machine, each instance will now log in to coherence Cloud using a difference Guest Id when logging in as a guest, even in the case of non-development builds.
* Project window icon now warns about no project being selected if RuntimeSettings contains a selected project, but that project is not actually found in the project list of the selected organization.
* Unity Logs settings in Project Settings are now disabled for ParrelSync clones when CloneMode.AllowEdits is not set true.
* Fix for local Simulator address and parameters being filled with remote details.
* Fixed issue where WorldService.FetchWorlds could sometimes fail with an InvalidOperationException.
* Fix for exception when interpolation property is null.
* Fixed warnings appearing in the console window at startup when coherence/editor.log is missing.
* Better handling for null parameter value in `CloudRooms.GetRoomServiceForRegion()`
* Fixed NullReferenceException if the coherence Hub window is maximized with the Networked Prefabs tab in focus.
* CoherenceSceneLoader no longer throws an exception when trying to load while exiting Play Mode.
* Indefinitely growing buffer when interpolation settings are changed during runtime.
* Serialization of emojis in strings.
* Fix for exception being thrown when requesting data from portal
* Zip executable not found on macOS + Unity 6.3+.
* Interpolation settings disabled on child GameObjects.
* CoherenceSync: transfer authority APIs fail gracefully when there's no CoherenceBridge instance available.
* Able to configure Prefab Variants that attach a CoherenceSync component.
* Configure window opens Prefab Variants in Isolation instead of the Variant Parent.
* In Hub's Cloud tab, the link to the schemas dashboard page redirects properly when using a custom project identifier.
* In Hub's Cloud tab, the Online Dashboard link opens the specific project, if any selected.
* "Fix Prefab Instance" button no longer shows when adding component overrides on Prefab instances.
* Fixed Matchmaking Sample UI getting stuck after lobby session starts.
* Can use custom ports for starting and connecting to the Replication Server.
* CoherenceBridge connection status icon in the hierarchy now updates correctly without requiring a click.
