The warning is pretty clear:
LogNet: Warning: UNetDriver::ProcessRemoteFunction: No owning connection for actor Ability_Firearm_C_1. Function OnServerFiringOptionsChanged will not be processed.
Except that it’s wrong, because I’m calling lots of RPCs on that object and all of them are working just fine. Apparently it decided that for one RPC it would just drop its owner and then get it back again. I have no idea.