Description

In FReplicationReader::ResolveAndDispatchUnresolvedReferences, CurrTimeMS is computed as static_cast<uint32>(FPlatformTime::Seconds() * 1000.0f). FPlatformTime::Seconds() includes GetSecondsTimeOffset() (16777216.0 on Apple and Windows), so the value always exceeds UINT32_MAX and the conversion is undefined behaviour. x64 happens to wrap, but ARM64 saturates to 0xFFFFFFFF. As a result, handles never move from HotUnresolvedHandleCache to ColdUnresolvedHandleCache and are retried on every call.

Steps to Reproduce
  1. Run an Iris client on an ARM64 platform.
  2. Replicate an object holding a reference that stays unresolved longer than net.Iris.HotResolvingLifetimeMS.
  3. Observe that the handle never moves from HotUnresolvedHandleCache to ColdUnresolvedHandleCache (CurrTimeMS is always 0xFFFFFFFF).

Have Comments or More Details?

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

0
Login to Vote

Unresolved
ComponentUE - Framework - Networking
Affects Versions6.0
Target Fix6.0
CreatedOct 23, 2026
UpdatedOct 23, 2026
View Jira Issue