docker-minecraft-bedrock-server: Allow list broken with 1.20.10 update.

Not sure what is happening exactly, but with the 1.20.10 update, I can’t join my server. It says “you are not invited” or something.

Here is my environment variables. I removed the ALLOW_LIST_USERS all together, and I still get rejected from the server.

 "environmentVariables": [
                        {
                            "name": "LEVEL_NAME",
                            "value": "bedrock-level-2"
                        },
                        {
                            "name": "DEBUG",
                            "value": "true"
                        },
                        {
                            "name": "ALLOW_CHEATS",
                            "value": "false"
                        },
                        {
                            "name": "MEMBERS",
                            "value": "xxx,yyy,zzz"
                        },
                        {
                            "name": "EULA",
                            "value": "true"
                        },
                        {
                            "name": "DIFFICULTY",
                            "value": "easy"
                        },
                        {
                            "name": "GAMEMODE",
                            "value": "survival"
                        },
                        {
                            "name": "OVERRIDE_SERVER_PROPERTIES",
                            "value": "true"
                        },
                        {
                            "name": "TZ",
                            "value": "Europe/Amsterdam"
                        },
                        {
                            "name": "OPS",
                            "value": "xxx"
                        },
                        {
                            "name": "VERSION",
                            "value": "LATEST"
                        },
                        {
                            "name": "MAX_PLAYERS",
                            "value": "10"
                        }
                    ],

About this issue

  • Original URL
  • State: open
  • Created a year ago
  • Comments: 43 (21 by maintainers)

Most upvoted comments

Binding a local allowlist.json to /data/allowlist.json does nothing - they seem completely disconnected from each other.

Ah! It’s likely this is because of the behavior when only binding a single file instead of a directory. If you bind allowlist.json directly the script looks like it overwrites it: jq -c -n --arg users "$allowListUsers" '$users | split(",") | map({"ignoresPlayerLimit":false,"name": .})' > "allowlist.json". Assuming that > does create a new file rather than updating in place this breaks the bind so when the file is updated it doesn’t propagate outside of the container.

@itzg The original problem “You are not invited to this server”, stemming from the allowlist changes, has been fixed? If so, can we just use:

ALLOW_LIST: 'true'
ALLOW_LIST_USERS: '[redacted],[redacted],[redacted],[redacted],[redacted],[redacted],[redacted]'

? Or is there additional work, as I’ve written below?

@DrFrankensteinUK Here is my exact Portainer config, with some redactions. Basically, ENABLE the allow list, DISABLE the Allow_list_users. When the docker container fires up, attach to the console and manually add folks to the allow list by NAME. I did not have to deal with XUID’s at all. For example: allowlist add sketchyburger

Upon checking the allowlist, both the username and XUID were present without anyone having to log in or having to manually look up the XUID.

#Allowlist is broken, so to allow players, attach to docker console (Portainer paper clip icon) and run "allowlist add [redacted]" (Case-sensitive)
#Every time docker container is updated or re-created (Not start/stopped), must re-add players.
#allowlist add [redacted]
#allowlist add [redacted]
#allowlist add [redacted]
#allowlist add [redacted]
#allowlist add [redacted]
#allowlist add [redacted]
#allowlist list ## Checks list


version: "3"

volumes:
  data:
  
services:
  minecraft:
    container_name: mc-couraud
    hostname: mc-couraud
    image: itzg/minecraft-bedrock-server:latest
    ports:
      - 19132:19132/udp
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - data:/data
    tty: true # With 'tty: true' its possible to attach and run commands: docker attach CONTAINER_NAME_OR_ID > op YOUR_XBOX_USERNAME
    stdin_open: true ## Allows attaching to docker container.
    environment:
      TZ: 'America/Los_Angeles'
      ALLOW_CHEATS: 'true'
      DIFFICULTY: 'normal'
      EULA: 'TRUE'
      GUI: 'FALSE'
      GAMEMODE: 'survival'
      SERVER_NAME: 'minecraft'
      SERVER_PORT: '19132'
      ALLOW_LIST: 'true'
      OPS: "[redacted long number]"
      MAX_Players: "10"
      #ALLOW_LIST_USERS: '[redacted],[redacted],[redacted],[redacted],[redacted],[redacted],[redacted]'
    restart: 'always'

I found this site that retrieve xuid from the gametag: https://www.cxkes.me/xbox/xuid

It looks like, understandably, I can’t add the xuid to the ALLOW_LIST_USERS environment variable. For my scenario I’ve manually added the xuid to allowlist.json for the time being, which works.

Correct. Instead you need to add your gamer tag to that list.

I notice a strange behavior. With ALLOW_LIST_USERS and ALLOW_LIST=TRUE set, previously the allowed users see “Not Invited” error. After removing allowlist.json and restarting the container, anybody is now allowed to connect with the same ALLOW_LIST_USERS and ALLOW_LIST.

Latest image now tweaks the logic as @ewolkowicz found and it seems to be working for me now.