Skip to content
Tickwise
CriticalVelocity & proxySIG-VE-004

Legacy (BungeeCord) forwarding mismatch between Velocity and the backend

Platforms
Velocity · whole network
Verified
Verified
Confidence
Confidence 95%

What it looks like in the log

Any one of these lines is enough. The agent matches them locally, on your server.

logs/latest.log
  • If you wish to use IP forwarding, please enable it in your BungeeCord config as well!
  • Unknown data in login hostname

Symptoms

  • Players cannot join the backend: “If you wish to use IP forwarding, please enable it in your BungeeCord config as well!”
  • Or the reverse: “Unknown data in login hostname, did you forget to enable BungeeCord in spigot.yml?”

Cause

The proxy and the backend are configured differently for legacy (BungeeCord) forwarding: the backend has settings.bungeecord enabled but Velocity does not send legacy data (modern/none mode), or vice versa.

Possible causes

  • The backend's spigot.yml has settings.bungeecord: true, while Velocity has player-info-forwarding-mode = "modern" or "none"
  • Velocity is in legacy/bungeeguard mode, while the backend has settings.bungeecord: false
  • The backend was not restarted after the forwarding mode changed

How to fixMedium risk

  1. Choose a single forwarding mode for the whole network. Modern is recommended for Minecraft 1.13+: on Velocity player-info-forwarding-mode = "modern", on the backend settings.bungeecord: false in spigot.yml and proxies.velocity.enabled: true + the secret in config/paper-global.yml.
  2. If you need legacy (backend ≤ 1.12.2): on Velocity player-info-forwarding-mode = "legacy" (or "bungeeguard" with the BungeeGuard plugin), on the backend settings.bungeecord: true.
  3. On the backend, set online-mode=false and close its port to the outside — legacy forwarding is insecure without this.
  4. Restart the backend.

Translated from the Russian original; log lines are quoted verbatim.

Sources