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
- 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 backendsettings.bungeecord: falseinspigot.ymlandproxies.velocity.enabled: true+ the secret inconfig/paper-global.yml. - If you need legacy (backend ≤ 1.12.2): on Velocity
player-info-forwarding-mode = "legacy"(or"bungeeguard"with the BungeeGuard plugin), on the backendsettings.bungeecord: true. - On the backend, set
online-mode=falseand close its port to the outside — legacy forwarding is insecure without this. - Restart the backend.
Translated from the Russian original; log lines are quoted verbatim.