Quick answer: Unreal Iris RPCs dropped on the receiver? Reliable RPCs queue per replicated object — the object may not be replicating, or the channel’s priority starves it.
A Client RPC fires server-side but never executes on the client. Iris requires the object to be visible to that connection.
Object Visibility
Iris uses the new visibility model. If the object isn’t in the connection’s relevant set, its RPCs queue but never deliver. Check via iris.PrintConnectionInfo.
Reliable Queue Cap
Reliable RPC queues have a per-channel cap. Overflow drops the connection (kicks the client) by default. For high-volume RPCs, prefer multicast or Unreliable.
Replication Priority
Iris prioritizes by importance + frequency. A low-importance object can stall its own RPCs under bandwidth pressure. Tune via FNetObjectPrioritizer overrides.
Switching from Old System
If you migrated from the legacy NetDriver, ensure UseIrisReplication = true in DefaultEngine.ini — otherwise you’re running mixed behavior.
Verifying
Insights NetTrace shows the RPC being sent and received. Reliable RPCs deliver in order even under packet loss test conditions.
“Iris RPCs need a visible object and a non-starved channel. Trace before guessing.”
Run NetTrace on every networking PR — a single capture catches dropped RPCs and bandwidth regressions in one shot.