Off by one frame error when updating component location based on another component's location from actor's Tick function

I have a MotionControllerComponent and two meshes. One mesh is attached to the controller via SetupAttachment, the other is updated from the actor’s tick function like this:

Mesh->SetWorldLocation(Controller->GetComponentLocation());

However, the two meshes are never at the same place. The one I’m manually updating lags behind by one frame. I have already tried

AddTickPrerequisiteComponent(Controller);

but that didn’t fix the problem. Can anyone tell me how to fix this?

Note that this is a simplified situation. The real code cannot use component attaching and I need to solve the off-by-one error.


Edit:

There’s this: Issue Tracker and this: Answer Hub. So, I’m guessing this is an old and known issue. The status on the issue is “Won’t fix” BTW.


Edit 2:

Enabling bDisableLowLatencyUpdate on the motion controllers solves the issue (■■■■ you double negatives!). However, now the entire thing lags behind. Most users may be fine with this, but I’m not, and the lag is noticeable for me. What I think we need is a callback for the pre-render update. I’ll investigate further and post back.