Roastd / Minecraft

critical

The proxy and backend disagree on forwarding mode

What it looks like in your log

This server requires you to connect with Velocity.

What causes it

One side speaks modern Velocity forwarding and the other legacy (or none), so login information never arrives in the expected shape.

How to fix it

Pick one mode on both sides: modern forwarding for 1.13+, or legacy for BungeeCord compatibility, and restart both.

Why it happens

Velocity and its backends must agree on how player identity is forwarded. Modern forwarding sends it inside the login handshake with a shared secret; legacy forwarding uses the BungeeCord format. If the proxy is set to one and the backend to the other, the backend either receives a join it cannot decode and refuses it, or it receives no forwarding at all and announces that it requires Velocity. Either way, nobody joins through the proxy.

Fix it step by step

  1. 1Pick one modeModern for 1.13 and later backends on Paper. Legacy only if a backend cannot do modern (old versions, some Forge setups).
  2. 2Set it on the proxyIn velocity.toml, player-info-forwarding-mode = "modern" or "legacy", and forwarding.secret set for modern.
  3. 3Set it on the backendFor modern on Paper: config/paper-global.yml, proxies.velocity.enabled = true, online-mode = true, secret matching the proxy. For legacy: spigot.yml settings.bungeecord = true and Velocity in legacy mode.
  4. 4Restart bothThe proxy reads its config at start and so does the backend. Restart the backend first, then the proxy.

If that didn't work

"Unable to verify player details" after this is the secret not matching. Copy it again from forwarding.secret; trailing whitespace counts.

Not sure this is your problem? Paste your log and Roastd will tell you which of these it actually matched, and what else it found.

Check your own log
Read more: Proxy networks with Linkd →

Errors that travel with this one