Checking IslocallyControlled in a multicast not always working

In order to check to make sure certain sounds are not being played for the client whos calling them i usually do a multicast rpc which gets called from a server rpc. in the multicast i usually do the following.

if(IsLocallyControlled())
{
return;
}
else 
{

// code here for all but client who called the server rpc

}

for some reason this does not always work even if the rpcs are set up the same way is there another way of doing this so that things will get done for all but the client who called the rpc to start with?

my ufunctions tags look like this

UFUNCTION(Server, Unreliable, WithValidation, BlueprintCallable)

UFUNCTION(NetMulticast, Unreliable)

if anyone has any way of doing this that works all the time that would be great thanks.