Gitlab runner DinD Preparation failed: creating cache volume

Well hello there.
I’ve been trying to get a custom Gitlab Runner working following this template.

version: "3.5"

services:
  dind:
    image: docker:20-dind
    restart: always
    privileged: true
    environment:
      DOCKER_TLS_CERTDIR: ""
    volumes:
      - ./data/dind/docker:/var/lib/docker
    command:
      - --storage-driver=overlay2

  runner-test:
      image: gitlab/gitlab-runner:alpine
      restart: "always"
      environment:
        DOCKER_HOST: tcp://dind:2375
      volumes:
        - ./config:/etc/gitlab-runner:z
        - ./data/runner/cache:/cache
      command: ["run"]

  runner-register:
      image: gitlab/gitlab-runner:alpine
      restart: "no"
      depends_on:
        - dind
      environment:
        CI_SERVER_URL: ${CI_SERVER_URL}
        REGISTRATION_TOKEN: ${REGISTRATION_TOKEN}
      command:
        - register
        - --non-interactive
        - --locked=false
        - --name= Generic-FF-Runner
        - --executor=docker
        - --docker-image=docker:20-dind
        - --docker-volumes=/var/run/docker.sock:/var/run/docker.sock
        - --docker-privileged
        - --tlsverify=false
      volumes:
        - ./config:/etc/gitlab-runner:z
        - ./data/dind/docker:/var/lib/docker

Running docker compose up in my vs code terminal works fine and registers the runner to a group.
When I run a job I can see the job being received but I get

Does anyone have any ideas?
it looks similar to this error Docker-machine Preparation Failed (#26564) · Issues · GitLab.org / gitlab-runner · GitLab.

But I’m running this with alpine containers on windows. I even changed my wsl default to Debian to see if its the Ubuntu bug. And from as far as I can see the DinD is running in privileged mode.