ECS Routing Issues

Hi all,

I am having trouble with my Traefik proxy settings and I'm hoping you can help.
I intend to have a web application where the end user routes to an ALB which then passes the request to Traefik which should then route the request to an ECS task based on the path of the request and establish a websocket connection with a specific port on the ECS task.

I have set up Traefik config as below:
traefik.yml

api:
  dashboard: true
  insecure: true

entryPoints:
  web:
    address: ":80"
    forwardedHeaders:
      insecure: true
  websecure:
    address: ":443"
  traefik:
    address: ":8080"

providers:
  ecs:
    clusters:
      - "my-cluster"
    region: "us-east-1"
    exposedByDefault: false
    refreshSeconds: 15
    autoDiscoverClusters: true
  file:
    directory: "/etc/traefik/dynamic"
    watch: true

log:
  level: "DEBUG"

accessLog: {}

ping:
  entryPoint: "web"

dynamic/dynamic-conf.yml

http:
  middlewares:
    user-port-selector:
      redirectRegex:
        regex: "^/user/([^/]+)\\?port=(\\d+)$"
        replacement: "/user/${1}:${2}"
    ws-headers:
      headers:
        customRequestHeaders:
          Connection: "Upgrade"
          Upgrade: "websocket"

  routers:
    user-router:
      rule: "PathPrefix(`/user/`)"
      service: "user-service"
      entryPoints:
        - "websecure"
      middlewares:
        - "user-port-selector"
        - "ws-headers"

  services:
    user-service:
      loadBalancer:
        passHostHeader: true

Labels on my ECS task

            "dockerLabels": {
                "traefik.http.middlewares.ws-headers.headers.customrequestheaders.Upgrade": "websocket",
                "traefik.enable": "true",
                "traefik.http.services.user-service.loadbalancer.passHostHeader": "true",
                "traefik.http.routers.user-router.rule": "PathPrefix(`/user/{%GROUP%}`)",
                "traefik.http.services.user-service.loadbalancer.server.port": "8000",
                "traefik.http.routers.user-router.service": "user-service",
                "traefik.http.routers.user-router.entrypoints": "websecure",
                "traefik.http.middlewares.ws-headers.headers.customrequestheaders.Connection": "Upgrade",
                "traefik.http.routers.user-router.middlewares": "ws-headers"

I was aiming to start tasks with a specific 'group' tag which I can then have as the end of my path but I am open to alternative ways of getting the user request to the right task.
So far I managed to get the dashboard up and can see that the ECS provider can has made a connection to the task but when I have a bastion try to curl Traefik with the below request I get a 404 error.

curl -v -H "Connection: Upgrade" \
     -H "Upgrade: websocket" \
     -H "Sec-WebSocket-Key: dummy123" \
     -H "Sec-WebSocket-Version: 13" \
     http://<traefik-private-ip>/user/<group>

Any help to get this working would be much appreciated,
Thanks in advance.