RunOnServer events only gets called if the caller is the owner of the Actor. That is what the comment on the Server node means “Reliable Replicated To Server (if owning client)”.
Communication from Client to Server has to happen on something the Client already owns like the PlayerController or Pawn or something else.
The reason it works on the server is because the server calls RunOnServer events regardless of ownership. If a non owning Client try to call the event it is dropped though and a warning is posted in the log.