Reference to child actor across RPC's not working

Hi all, I wonder if anyone can point me in the right direction on a RPC issue I’m having.

I have an object that is static in the persistent level that is loaded by the listen server. It has several “button” objects that are child actors. Each one of them has an event dispatcher that various BP’s bind events to dynamically.
I want to have the client respond to the push of the button by telling the server it was pushed, then having the server issue a multicast event to all the clients to call the event dispatcher.
However, if I put the child actor simply as a reference to an actor into the rpc - receiving server script throws and error:
Warning: UPackageMapClient::InternalLoadObject: Unable to resolve default guid from client: PathName: ChildActor_GEN_VARIABLE_UIDynamicElementButton_BP_C_CAT_830,

How do I correctly pass a ref to this object?

Thanks,
DR

Edit: revised the solution to skip looping through components. Turns out there’s a GetParentComponent function that actually gets the ChildActorComponent the given child actor was spawned from.

Old solution:
I do not like this solution, but I came up with something that works for this case. I have to get the parent actor for the child in question, loop through all of its ChildActorComponents, find the one with a child actor that matches what I want, and then send a special RPC with that ChildActorComponent. The RPC can then extract the server’s version of the child actor from the component and carry on. Here’s an example where I detect if it’s a child actor, and if so follow a different path to send the server RPC.

This is expected. Although the actors can’t be different on different machines they might not be loaded or the order of loading might not be the same so sending a reference to a level object is a no-go.

Try to work your way around the problem. Instead of sending a reference send an the index of the child object or attach an identification and send that “id” of the child object.

Note that in a network environment Multicast event might not work since any of the level objects might not be loaded for any particular client - the client might be in a different place on the map or the client might have joined late (after the multicast)

Use a replicated value Instead that is set on the server. This way, any client can check the value and infer what the action was (which button was pressed) even if they were not present at the time of the event.

End of day you want the server itself to interact just as the client did. Servers result (button it pushes) fires a server event that multicasts the action, or simply sets a repnotify in the actor.