NapNodes

← Minecraft guides

Minecraft · updated 26 October 2026

Chat Errors on a Minecraft Server: Signatures, Validation and the Profile Public Key

A friend joins and can't type, or gets kicked when sending a message with “Chat message validation failure” or “Invalid signature for profile public key”. It isn't your world or your RAM: it's the chat signing Minecraft added in 1.19. Here's what it is, what breaks it and how to fix it, from the safest fix to the one that only makes sense if you know why you're doing it.

What chat signing is

Since 1.19, every player with an official account carries a key from Mojang, and their game signs the messages they write. That way you can prove who said what (it's what lets you report a message to Mojang) and that nobody changed it along the way. Messages are also chained: each one counts on the previous one, and if a link is missing, the game treats the chain as broken.

The server decides whether it requires that signature with a line in server.properties, enforce-secure-profile, which has been true by default since 1.19.1. With true, anyone who doesn't bring a valid Mojang key can't chat (on old versions, they couldn't even join). It only counts if the server has online-mode=true: on a server without official accounts (cracked), nothing is checked.

Rather not set it up yourself? Minecraft servers from €6 a month, no contract and a full refund within 72 hours. Or create a free Minecraft server, no card needed.

The messages and what each one means

  1. “Chat disabled due to missing profile public key”

    That player's game hasn't sent its key. It's almost always fixed by signing out of the launcher and back in, or restarting the game. If they use an unofficial launcher or a mod that doesn't sign, it will keep happening while the server requires signing.

  2. “Invalid signature for profile public key”

    The key they bring doesn't match what the server expects. It's usually an old launcher session (fixed like the previous one) or a badly configured proxy (Velocity, BungeeCord) in front of the server.

  3. “Chat message validation failure” and “Received chat packet with missing or invalid signature”

    The message chain broke: something cancelled, changed or reordered a signed message. The usual suspects are an old chat plugin that touches packets, a proxy that cancels messages or a very big lag spike. The player it happens to gets kicked as soon as they type.

  4. Not kicked, but can't type or use /msg

    They have a mod that doesn't sign (No Chat Reports and similar) on a server that requires signing. Since 1.19.3 they can join, but chat and chat commands don't work for them.

How to fix it, from safest to last resort

  1. Have the player sign in again

    Closing the game, signing out of the official launcher and signing back in renews their key.

  2. Same version, or ViaVersion up to date

    If they join with a different version from the server's, the plugin that allows it (ViaVersion) has to be on its latest version: old ones fail precisely on chat signing.

  3. Update your chat plugins

    The ones that change the chat format, word filters or channels. If the error started when you installed one, remove it, restart and test: if it goes away, that was it.

  4. With Bedrock players, Geyser and Floodgate up to date

    Bedrock players don't have a Java key; Floodgate takes care of that, but an old version can cause these errors. Update them before touching anything else.

  5. If none of that is enough: enforce-secure-profile=false

    With false, the server lets people who don't sign chat. Those who do sign keep doing it; the only change is that unsigned messages are accepted. For a server among friends it's safe. Restart the server so it reads it.

What do you lose with enforce-secure-profile=false?

Little on a private server: messages that arrive unsigned can't be reported to Mojang from the game, and anyone who wants to can join with mods that don't sign. What doesn't change is who gets in: that's decided by online-mode (official accounts only) and the whitelist, not by chat signing.

Don't mix it up with online-mode. Setting online-mode=false to “fix” the chat is a serious mistake: it lets anyone in with any name they like, including yours and your admins'. To get rid of the chat errors, enforce-secure-profile is enough.

If what you want is the opposite, that nobody can report messages from your server, modded servers have server-side mods like No Chat Reports that strip the signature before forwarding messages; on Paper there are plugins that do the same. Tell your players: it's a decision for your server, not for each player.

How it's done on NapNodes

We deliver Minecraft on Paper, on the latest version, with online-mode and enforce-secure-profile as they come by default (true). In the panel you change it without opening any file: it's “Require Mojang-signed chat”, in “Settings”.

  1. Check the reason in the “Console”

    When someone gets kicked, the console says “lost connection:” and the reason. That tells you which of the cases above it is.

  2. Turn signing off in “Settings”

    Look for “Require Mojang-signed chat” (or type “chat” in the search box) and switch it off: it's enforce-secure-profile=false. It saves by itself.

  3. Restart

    With “Restart”. Paper only reads server.properties at startup.

  4. Plugins up to date, from the panel

    Geyser and Floodgate are in “Mods & plugins” → the “Bedrock” tab: “Turn off Bedrock” and then “Turn on Bedrock” downloads the latest ones. For ViaVersion or a chat plugin, remove it in “Installed” and “Install” it again from the plugins tab: it downloads the latest version that works for your server.

Frequently asked questions

What is enforce-secure-profile in Minecraft?

A server.properties option that requires chat messages to be signed with the key Mojang gives each account. It has been true by default since 1.19.1. With false, the server also accepts unsigned messages.

How do I fix “Chat message validation failure”?

It's the chain of signed messages broken, almost always by an old chat plugin, a proxy or an outdated ViaVersion. Update or remove the plugin that touches the chat; if it keeps happening, set enforce-secure-profile=false in server.properties and restart.

Is it dangerous to set enforce-secure-profile to false?

On a server among friends, no: it doesn't change who can join (that's online-mode and the whitelist). It only accepts unsigned messages, which can't be reported to Mojang.

Should I set online-mode=false to get rid of the chat error?

No. online-mode=false lets anyone in with any name, including yours. For the chat, enforce-secure-profile=false is enough.

Why can I join the server but not type?

Your game isn't signing messages: sign in to the launcher again, check your computer's clock or remove mods that don't sign. If the server is yours, you can also set enforce-secure-profile=false.

Shall we set it up for you?

Minecraft servers from €6 a month, never oversold: your RAM is yours alone. And if you'd rather start without paying, there's a free Minecraft server, no card needed.

Your server doesn't show up in the game? Check it in a second with “Is my Minecraft server online?”: players, version and MOTD, free. Need a player's UUID for the whitelist or permissions? Look it up here. Handing out enchanted items? Build the command with the /give generator.

Free tool: server.properties editor. Paste your server.properties, change each option with a plain-English explanation and download it. It flags the ones that no longer work.

Keep reading

All Minecraft guides, sorted →