ClientRPC won't get fired as Client

I’m trying to setup a simple chat messenger. My Problem is, that I can trigger a ClientRPC-method, if I’m the Host, but not if I’m the client.

public class ChatBehaviourMLAPI: NetworkBehaviour
{
    [SerializeField] private GameObject chatUI = null;
    [SerializeField] private TMP_Text chatText = null;
    [SerializeField] private TMP_InputField inputField = null;

    public static event Action<String> OnMessage;

    private void Update()
    {
        if (IsLocalPlayer && !chatUI.activeSelf)
        {
            chatUI.SetActive(true);
            inputField = GameObject.Find("Chat_UI/Chat_Canvas/Input_Chat").GetComponent<TMP_InputField>();
            OnMessage += HandleNewMessage;
        }

        if (IsLocalPlayer && Input.GetKeyDown(KeyCode.Return) && !inputField.isFocused) {
            inputField.ActivateInputField();
            inputField.Select();
        }

        if (IsLocalPlayer && Input.GetKeyDown(KeyCode.Keypad8))
        {
            Debug.Log("Num8 pressed; triggerring RPC");
            TriggerSendClientRpc();
        }
    }

    private void HandleNewMessage(string message)
    {
        chatText.text += message;
    }

    [ClientRpc]
    public void TriggerSendClientRpc()
    {
        Debug.Log("trigger sending");
        if (!IsLocalPlayer)
            return;
        if (string.IsNullOrWhiteSpace(inputField.text)) { return; }
        SendMessageServerRpc(inputField.text);
    }

    [ServerRpc]
    private void SendMessageServerRpc(string message)
    {
        SendMessageClientRpc(message);
    }

    [ClientRpc]
    private void SendMessageClientRpc(string message)
    {
        OnMessage?.Invoke($"\n{message}");
    }
  
}

I’ve got a UI with TextMeshPro and I’m just using a normal text-Input for it. I binded a “On End Edit” Callback for the input field. So every time I hit the enter key or exit the focus of the input field, the binded method, which is “TriggerSendClientRpc”, gets triggered. This method starts then to bradcast the message and the entered message should pop up on all users. I can see the message on the host and also on the connected clients.
But this only works, if I’m sending chat-messages as a Host. Therefore I can always see the log “trigger sending” in the console.
If I try to send messages as a client, the TriggerSendClientRpc-method doesent seem to get fired at all, because there is no messages on the users chat history and the log-message “trigger sending” doesn’t pop up either in the console.
To clarify if it’s a problem with the binded callback from the TextMeshPro-object, I added the third IF-block into the Update-function. So i triggered the ClientRPC-method with pressing the Numpad8 by myself.
But again, this works only, If i start the Game as a Host, nothing happens as Client.

Do I missunderstand something here? I have absolutely no idea.
Thanks for any advice

Only the owner of a NetworkObject can send a ServerRpc by default. You can use the RequireOwnership attribute to allow any client to send a ServerRpc like this: [ServerRpc(RequireOwnership = false)]

It’s not about the ServerRpc-method, it’s about the ClientRpc-method, the TriggerSendClientRpc-method specifically.
But despite this, I tried your advice out, but it still doesn’t work

Ok, I solved it.
I just removed the ClientRpc Flag from the trigger method and made it to a normal public method. Now the method gets triggered which also activates the ServerRpc.
But why this is working, isn’t clear for me actually