When does it safe to call server function?

Hello. Today I met a problem that my server function didn’t trigger. I called it from client in SetupInputComponent() method. I spend half of a day trying to figure out why it doesn’t work. Finally I added a key action and in this action I called my RPC. And… And now it works. So my question is - why calling RPC from SetupInputComponent() is failed. When and where can I call RPC and be fully sure that it will fire?