What a signed chat message is
Every Java player receives a pair of keys from Mojang that belongs to their account. Before a chat message is sent, the game signs it with the private key. The server passes the signature along with the words, and the game of every player who reads the message checks it against the public key. Each message also carries a running number and the signatures of messages the sender recently saw, so nobody can quietly drop or reorder lines in a conversation.
The point of all this is evidence. A valid signature shows that this account typed exactly these words, which is what Mojang's moderators need before they act on a report. A message without one can still be read by everybody, but it cannot be reported.
| Next to the message | Text when you hover over it | What it means |
|---|---|---|
| Nothing | None | Signed by the sender and passed on unchanged. |
| A gray bar | Unverified message. Cannot be reported. | No valid signature arrived with it. |
| A small Modified mark | Message modified by the server. Original: and then the words the player typed | The server sent other words next to the signed original. |
| A gray bar | Server message. Cannot be reported. | Sent by the server or a plugin, not by a player's own game. |

The Require signed chat switch
The line in the file is enforce-secure-profile, and it is true by default. On our panel it is Require signed chat in the Access group of the Settings tab, just after Verify accounts with Mojang. The Access group is shown without clicking Show advanced settings.
- Joining still works without a key. A player whose game has no valid key gets in and can walk around, but the server refuses their chat.
- Every message is checked for a matching signature, the right order and a key that has not expired. A message that fails does not reach anyone.
- It depends on account checks. With Verify accounts with Mojang off, the server has no way to check keys, and signed chat is not enforced whatever this switch says.
Open the Settings tab
Scroll to the Access group, where the whitelist and account settings are.
Flip Require signed chat
The label gets an asterisk, and a bar with your unsaved changes appears.
Click Save changes
The panel writes the line into
server.propertiesand reminds you to restart the server to apply the settings that need it. This is one of them.Restart the server
The file is read at start, so the old behaviour stays until the next restart.
Chat validation errors, word for word
When the check fails, the game tells the player with one of the lines below. Almost all of them are about one player's key or clock, which is why a single person can be stuck while everyone else chats normally.
| What the player sees | What went wrong | What usually helps |
|---|---|---|
Chat disabled due to missing profile public key. Please try reconnecting. | The game never sent a key. Client mods that withhold the key cause this, and so do launchers that do not sign in with a Microsoft account. | Reconnect. With such a mod, chat only works on servers that do not require signed chat. |
Chat disabled due to expired profile public key. Please try reconnecting. | The key ran past its end date. | Reconnect, and check that the computer's clock is set correctly. |
Chat received out-of-order. Did your system time change? | A message arrived with an older time than the one before it. | Let the system clock sync, then reconnect. |
Chat disabled due to broken chain. Please try reconnecting. | A message is missing from the player's numbered sequence. | Reconnect to start a new sequence. |
Chat had an invalid signature. Please try reconnecting. | The signature does not match the words or the key. | Reconnect. If it keeps coming back, test without client mods. |
Chat message validation failure | A disconnect: the list of recently seen messages sent along with a message did not add up. | Reconnect. When it hits many players, test with your chat plugins removed on a copy of the server. |
Expired profile public key. Check that your system time is synchronized, and try restarting your game. | A disconnect: the key is out of date, most often because of a wrong clock. | Sync the clock and restart the game. |
Invalid signature for profile public key. Try restarting your game. | A disconnect: the key itself was not accepted. | Restart the game and the launcher. |
The receiving side has its own message. When a player's game cannot verify a message it gets, that line reads Chat validation error instead of the text, and hovering over it shows Server sent invalid message. Other connection errors are in the guide for players who cannot connect.
Server log on the Console tab
Received chat message from Kai, but they have no chat session initialized and secure chat is enforced
Received message with expired profile public key from Kai with session
Received out-of-order chat message from Kai: expected index
Received message with invalid signature (is the session wrong, or signature cache out of sync?)The lines are shortened here after the part that matters. Most of them name the player, which tells you whether one person or the whole server has a problem. The first one is the classic sign of a client mod that refuses to sign while Require signed chat is on.
When a plugin rewrites the message
A signature covers the exact words a player typed. Everything around those words is the server's business: the name, a rank prefix, colors, the brackets. Changing the words themselves is a different matter, and that is what word filters, emoji replacers and auto-capitalising plugins do.
- A plugin changes the words. Paper, and Purpur which builds on it, sends the new text together with the signed original. Readers see the Modified mark, and the hover shows what the player really typed.
- A plugin changes only the format around the words, such as a prefix or a name color. Paper keeps the player's signed original as the message.
- A plugin sends player chat as a server message. It arrives without a signature and is marked
Server message. Cannot be reported.Plugins that are built to prevent reports work this way.
Some players hide rewritten chat
Chat Settings in the game has an option called Only Show Secure Chat. Its own description: Only display messages from other players that can be verified to have been sent by that player, and have not been modified. A player who turns it on sees nothing of messages your word filter changed or a plugin resent, and has no way of knowing they missed something.
What players are told before they chat
When a game asks your server for its entry in the multiplayer list, the answer carries the MOTD, the icon and the player count, and also whether the server requires signed chat. The list in Minecraft 26.2 does not draw anything for that last part. Players find out once they are in, and only on a server that does not require it, through this notice:
Notice after joining
Chat messages can't be verified
Messages sent on this server may be modified and might not reflect the original messageOn such a server the report screen may also refuse with This player can't be reported, because their chat messages can't be verified on this server. Players who see that are not facing an error; it is the direct result of your setting.
What a report does, and your part in it
A player opens the Social Interactions Screen, on P by default, or the Player Reporting button in the pause menu, and picks Report next to a name. There are three kinds of report: Chat Messages, Player Name and Player Skin. For chat they tick the messages, choose a category such as Harassment or bullying, add a comment and send it. The report goes from their game to Mojang, whose moderators review it against the Minecraft Community Standards.
| As the server owner you can | As the server owner you cannot |
|---|---|
| Read all chat in the server log, where lines without a valid signature are marked Not Secure | See reports, or who reported whom |
| Choose whether your server requires signed chat | Lift or shorten a suspension that Mojang hands out |
| Mute, kick or ban players on your own server | Undo a report once a player has sent it |
| Let a plugin take a message back after it was sent | Change a player's own Only Show Secure Chat or Hide in Chat choices |
Your own rules and Mojang's reporting run side by side. For trouble that should be handled on the server itself, the guide to banning, kicking and muting covers the tools, and operator rights are in the whitelist and op guide.
Switching it off: what changes and what does not
Owners usually switch signed chat off for one of two groups. Bedrock players on a Crossplay server come in through Geyser, and Geyser's own documentation says Bedrock Edition takes no part in signing, so they cannot chat while the server requires it. The other group runs client mods that withhold the key.
| Require signed chat on | Require signed chat off | |
|---|---|---|
| Players without a key | Join, but cannot chat | Join and chat |
| Bedrock players through Geyser | Cannot chat | Can chat |
| Chat from ordinary Java players | Signed, and reportable | Still signed by their game and passed on, so still reportable |
| Messages without a signature | Refused | Shown with a gray bar, and hidden from players using Only Show Secure Chat |
| Notice when joining | None | Chat messages can't be verified |
Off does not make chat unreportable
A normal Java game keeps signing its messages, and a vanilla or Paper server keeps passing those signatures on. Only a server add-on that strips or resends chat changes that: FreedomChat has builds for Paper and Fabric on 26.2, and No Chat Reports for Fabric, Forge and NeoForge on 26.2. FreedomChat's own notes add that players with client mods that switch signing off still need Require signed chat turned off.
- What you gain: Bedrock players and players with those client mods can take part in chat.
- What you give up: messages that arrive without a signature cannot be reported, so abuse from those players is entirely a job for your own moderators.
- What players notice: the join notice, gray bars next to unsigned lines, and silence for anyone with Only Show Secure Chat turned on.
On a network built with the Network card, the proxy has its own key check, force-key-authentication. The panel sets it together with the proxy's account check when it builds the network; the network guide explains how the proxy and the servers behind it share that work.
Written and checked by the Lodehost team, last reviewed on 14 September 2026.




