Chat Signing

How to resolve issues caused by the introduction of the "Secure Chat" system in Minecraft 1.19.1+.

The Minecraft 1.19.1 update introduced the "Secure Chat" system to Minecraft.

kennytv wrote an interesting and in-depth article on how this feature works, if you wish to learn more.

This system introduced several new challenges for Minecraft plugins which need to prevent messages from being sent, particular at the proxy level.

When a signed chat packet is cancelled by a plugin on the proxy, it is prevented from reaching the Minecraft server the player is connected to. When the player later sends another signed chat packet that isn't cancelled, it will be received and verified by the Minecraft server. During this verification process, the signature will be invalid due to the message indexes not matching.

BungeeCord

If you are running BungeeCord and have players connected with Minecraft 1.19.1+, you may have players kicked from your backend servers with the following message:

Received chat packet with missing or invalid signature.

This kick is caused by the server attempting to validate a signed packet with an invalid signature. This will occur if the player has a message cancelled on the proxy, and then sends another message that does not get cancelled.

Known workarounds

We recommend trying the following workarounds to resolve this issue. If you find any other workarounds, please contact us so that we can share them here!

  1. Disable chat signing (Not Recommended) There are a few plugins you can use to achieve this, however AntiPopup has been tested to work properly. In order for AntiPopup to work, it must be installed on all of your servers.

    This will cause all chat messages to be unsigned, which will prevent player messages from being reported to Mojang.

    Marketplace
    Resource Page
  2. Disable the toggle and message prefix features These features require UltraStaffChatPro cancelling chat messages, which may cause the kick mentioned above when used with signed chat messages.

    If you do not wish to disable chat signing, we recommend disabling these features in the config.yml file:

Velocity

If you are running Velocity and have players connected with Minecraft 1.19.1+, you may have players kicked with the following error printed to console:

A plugin tried to cancel a signed chat message. This is no longer possible in 1.19.1 and newer.

This kick was implemented by the Velocity team(opens in a new tab) to prevent mismatches on the server, instead opting to kick players from the proxy before this can happen.

Known workarounds

We recommend trying the following workarounds to resolve this issue. If you find any other workarounds, please contact us so that we can share them here!

  1. Use SignedVelocity (Recommended) SignedVelocity allows plugins to cancel and modify messages/commands from Velocity without synchronisation issues. In order for SignedVelocity to work, it must be installed on both Velocity and all of your servers.

  2. Disable chat signing with UnSignedVelocity (Not Recommended) UnSignedVelocity allows plugins to cancel and modify messages/commands by removing the signed information from chat packets sent by players using Minecraft 1.19.1+.

    You will also need a plugin such as AntiPopup installed on all of your servers to prevent players sending unsigned messages from being kicked by the server.

    This will cause all chat messages to be unsigned, which will prevent player messages from being reported to Mojang.

  3. Disable the toggle and message prefix features These features require UltraStaffChatPro cancelling chat messages, which may cause the kick mentioned above when used with signed chat messages.

    If you do not wish to use SignedVelocity or disable chat signing, we recommend disabling these features in the config.yml file:

Last updated

Was this helpful?