PerlandFailure catalogue

The server does not check players' accounts

Warningoffline_mode

The server or proxy runs in offline mode, so anyone can join under any name, including the name of an operator.

What the log shows

Written example5 lines
[12:40:09] [Server thread/INFO]: Starting Minecraft server on *:25565
[12:40:09] [Server thread/WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!
[12:40:09] [Server thread/WARN]: The server will make no attempt to authenticate usernames. Beware.
[12:40:09] [Server thread/WARN]: While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose.
[12:40:09] [Server thread/WARN]: To change this, set "online-mode" to "true" in the server.properties file.

Your log will have other names, versions and times. Search a line of it from all failures.

What it means

In online mode, the server asks Mojang’s servers to confirm that every joining player owns the Minecraft account they claim. In offline mode it skips that check and believes the name the game client sends.

That means anyone can join with any name: a player can take someone else’s name, their inventory and their permissions, including those of an operator (op). Offline players also get a different UUID than their real account, so data saved under the real UUID (inventories, ops, whitelist entries) does not match them. The server prints a warning at every start; Velocity prints its own when the proxy is in offline mode.

Why it happens

  • It was turned off on purpose. To let players without a bought account join, to play without internet, or for testing.
  • The server sits behind a proxy. A backend of a BungeeCord, Waterfall or Velocity network runs offline because the proxy checks the accounts. That is expected, as long as players cannot reach the backend’s port directly.
  • It was turned off by mistake. A copied server.properties or a setting changed while troubleshooting.

How to fix

  1. If you did not mean to run in offline mode, set online-mode=true in server.properties and restart the server.
  2. Velocity: set online-mode = true in velocity.toml. BungeeCord and Waterfall: set online_mode: true in config.yml.
  3. Turning online mode on changes the UUID of players who joined while it was off, so their old player data may not follow them. Take a backup of the world first.
  4. If you need offline mode, protect the server: keep a whitelist, use a login plugin that makes players register a password, and do not give ops to names you have not confirmed.
  5. Backends behind a proxy: keep them offline, but make sure only the proxy can reach their ports (a firewall, or ports that are not published).

In Perland

The issue appears in the server’s Diagnosis tab, and its fix button opens Online mode under Player accounts in the server’s Settings. On a network, Perland’s proxy checks the accounts and its backends run offline on purpose, so the diagnosis does not report this for a backend.

References

Log lines this page covers

  • **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!
  • The proxy is running in offline mode!