Description

Looks like the replication system doesn't properly account for bShouldBeVisible. Once a level has be marked bShouldBeVisible=false on the server, the level is completely cleaned up and all actor channels are permanently closed.

The actor channels should be recreated when the level becomes visible again.

Steps to Reproduce
  1. Open the attached project.
  2. Ensure settings are Single Process, Dedicated Server.
  3. Set the LogNet log level to verbose. In editor, bring up console and enter:
    log lognet verbose
  4. PIE
  5. Press 1 to toggle visibility until it is off (initially it will report being on).
  6. Wait a few seconds.
  7. Press 1 to toggle visibility on.

Expected: When visibility is re-enabled the streamed level is visible and networking resumes with no issues.

Actual: When visibility is re-enabled replication errors occur because the Actor channels have been destroyed:

LogNet: Server connection received: ActorChannelFailure
LogNet:Warning: UActorChannel::ProcessBunch: SerializeNewActor failed to find/spawn actor.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to AnswerHub just mention UE-43042 in the post.

3
Login to Vote

Fixed
ComponentNetworking
Affects Versions4.144.154.16
Target Fix4.21
Fix Commit4302736
Main Commit4352452
Release Commit4399518
CreatedMar 17, 2017
ResolvedAug 20, 2018
UpdatedJan 24, 2019