Description

This seems to be because of recent changes made for [Link Removed]. Now that UNetDriver::bInTick is being properly tracked for derived classes, AOnlineBeacon::CleanupNetDriver is now deferring destruction of the NetDriver rather than immediately calling DestroyNamedNetDriver. When AOnlineBeaconClient::DestroyNetworkActorHandled is then called when attempting to destroy the beacon, the connection is still considered open, and so destruction of the connection/beacon is also deferred by setting bPendingDestroy on the BeaconConnection. However, the BeaconConnection isn't destroyed, since the NetDriver is shutdown at the end of the tick without ticking the connection again.
While destroying a NetDriver from a RPC is not considered a supported operation, this did work previously for beacons. If this is something that shouldn't be supported, it should likely be made more clear what is going wrong, such as with log errors or warnings.

Steps to Reproduce

Within a client beacon's RPC, call DestroyBeacon. Previously, this would result in the beacon being destroyed as expected. As of 5.2, the beacon will no longer be destroyed.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-186023 in the post.

0
Login to Vote

Fixed
ComponentUE - Networking
Affects Versions5.2
Target Fix5.4
Fix Commit30355891
Main Commit30355970
CreatedMay 16, 2023
ResolvedDec 18, 2023
UpdatedApr 16, 2024