FRepLayout::DiffProperties doesn't check if the property's conditions is COND_Never or if the Parent Cmd's flags have the ERepParentFlags::IsLifetime flag (which FRepLayout::InitFromClass doesn't set for COND_Never properties). This means that if just a COND_Never property changes, DiffProperties and ValidateAgainstState will print warnings to the logs. Both of these conditions are checked in CompareParentProperty to see if the property should be skipped.

Steps to Reproduce

Create an actor with a COND_Never replicated property (either using DOREPLIFETIME_CONDITION or DISABLE_REPLICATED_PROPERTY) that is changed frequently.
Set the actor to be dormant, and periodically call FlushNetDormancy on it.
Set net.DormancyValidate=1
Expected: dormancy validation will print no warnings, since the only property that is changing is not replicated
Actual: log warnings will be printed saying that the COND_Never property has changed

Have Comments or More Details?

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

Login to Vote

ComponentUE - Networking
Affects Versions5.3
Target Fix5.5
CreatedJun 2, 2023
UpdatedFeb 23, 2024
View Jira Issue