Skip to content

Premium verification fails with keepOfflineUuidCompatibility: true on Velocity #3090

@tabatintores

Description

@tabatintores

What behaviour is observed?

Premium login works only when keepOfflineUuidCompatibility is set to false.

When using:

premium:
  keepOfflineUuidCompatibility: false

premium verification succeeds after /premium and reconnecting, but the player joins backend servers with their Mojang UUID. This makes the player appear as a new account on existing offline-mode backend servers, because previous player data is stored under the old offline UUID.

However, when using:

premium:
  keepOfflineUuidCompatibility: true

premium verification fails after reconnecting. The player is forced to log in with their AuthMe password again.

The in-game message is:

Premium verification failed. Please login with your password.

The Velocity config generated by AuthMe did not include the premium: section by default, so it was added manually.

Expected behaviour

When keepOfflineUuidCompatibility: true is enabled, I expect the following behavior:

  1. A player logs in with their AuthMe password.
  2. The player runs /premium.
  3. The player is kicked and asked to reconnect for premium verification.
  4. The player reconnects using a valid licensed Minecraft account.
  5. Premium verification succeeds.
  6. The player is automatically authenticated without entering their AuthMe password.
  7. The backend server still receives the player's previous offline UUID, so existing inventories and plugin data are preserved.

To Reproduce

  1. Set up a Velocity network in offline/mixed mode.
  2. Install AuthMe-6.0.0-Velocity.jar on the Velocity proxy.
  3. Install AuthMe-6.0.0-Paper.jar on the auth/lobby backend server.
  4. Enable premium mode in the backend AuthMe config:
settings:
  enablePremium: true
  1. Enable Velocity hook and use the same proxySharedSecret on both proxy and backend:
Hooks:
  bungeecord: true
  proxySharedSecret: "<redacted>"
  1. Add this to the Velocity AuthMe config:
premium:
  keepOfflineUuidCompatibility: true
  1. Restart both Velocity and the backend server.
  2. Join with a valid licensed Minecraft account.
  3. Log in with /login <password>.
  4. Run /premium.
  5. Reconnect after being kicked for premium verification.
  6. Premium verification fails and the player is asked to log in with a password.

For comparison, changing the option to this makes premium verification succeed:

premium:
  keepOfflineUuidCompatibility: false

but then the backend receives the Mojang UUID instead of the previous offline UUID.

Plugin list

Proxy:

AuthMe-6.0.0-Velocity.jar

Auth/lobby backend:

AuthMe-6.0.0-Paper.jar

No other premium-login plugin such as FastLogin is installed.

Server Implementation

BungeeCord

Database Implementation

MySQL

AuthMe Version

AuthMe 6.0.0

Error log (if applicable)

No response

Configuration

yml authServers: - lobby allServersAreAuthServers: false serverSwitch: requiresAuth: true kickMessage: 'Authentication required' autoLogin: true sendOnLogout: true unloggedUserServer: 'lobby' commands: requireAuth: true whitelist: - /login - /register - /l - /reg - /email - /captcha - /2fa - /totp - /log - /logout - /premium - /freemium chatRequiresAuth: true loginServer: '' proxySharedSecret: '<redacted>' premium: keepOfflineUuidCompatibility: true

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions