Sitting Humanoid with a script is ignored

Hello
I have the following problem
I am testing in Studio.
In a local script I call server function, which creates a vehicle (model) and returns it.
When I receive back the model in the local script, I call RunService.Heartbeat:Wait() and then try to sit the player using vehicle:WaitForChild(“Seat”):Sit(humanoid).
(Seat is a regular Seat instance)
However unless I add task.wait(2) before it, the sitting command is ignored.
No errors in the output.
I added print of GetDescendants of the vehicle before calling the Sit method, and it is visible that all parts are available on the client before Sit method is executed.
However if I remove the task.wait or even if I make it 1 second instead of 2, the sitting is ignored…
What can be the reason for this?

Thanks