# The service errors@docker does not exist

**URL:** <https://community.traefik.io/t/the-service-errors-docker-does-not-exist/18105>\
**Category:** Traefik v2\
**Tags:** middleware, docker\
**Created:** [March 31, 2023, 3:14pm UTC](https://community.traefik.io/t/the-service-errors-docker-does-not-exist/18105 "2023-03-31T15:14:29Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![anon79327971](https://avatars.discourse-cdn.com/v4/letter/a/22d042/32.png) [@anon79327971](https://community.traefik.io/u/anon79327971)\
**Post date:** [March 31, 2023, 3:14pm UTC](https://community.traefik.io/t/the-service-errors-docker-does-not-exist/18105/1 "2023-03-31T15:14:29Z")

</div>

Hi,  
I'm sorry if this is covered somewhere, but I could not find information on it anywhere. It's probably just a typo or something on my side, but after looking for an hour, I thought, I might as well post here. I am using [Tarampampam's error pages](https://github.com/tarampampam/error-pages) and the logs return the following:

```auto
traefik | time="2023-03-31T14:52:32Z" level=info msg="Configuration loaded from file: /etc/traefik/traefik.yml"
traefik | time="2023-03-31T14:52:36Z" level=error msg="middleware \"error-pages-middleware@docker\" does not exist" routerName=traefik@docker entryPointName=web
traefik | time="2023-03-31T14:52:41Z" level=error msg="the service \"errors@docker\" does not exist" entryPointName=web routerName=traefik@docker
traefik | time="2023-03-31T14:52:41Z" level=error msg="the service \"errors@docker\" does not exist" entryPointName=web routerName=error-pages-router@docker

```

Lastly, this is my docker-compose.yml file.

```auto
version: '3'

services:
  traefik:
    image: "traefik:v2.9.9"
    container_name: "traefik"
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./traefik-data:/etc/traefik
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      - "DESEC_TOKEN=totallyrealtoken"
    labels:
      traefik.enable: true
      traefik.http.routers.traefik.rule: Host(`traefik.localhost`)
      traefik.http.routers.traefik.service: api@internal
      traefik.http.routers.traefik.entrypoints: web
      traefik.http.routers.traefik.middlewares: error-pages-middleware

  error-pages:
    image: tarampampam/error-pages:2.21.0
    environment:
      TEMPLATE_NAME: ghost # set the error pages template
    labels:
      traefik.enable: true
      # use as "fallback" for any NON-registered services (with priority below normal)
      traefik.http.routers.error-pages-router.rule: HostRegexp(`{host:.+}`)
      traefik.http.routers.error-pages-router.priority: 10
      traefik.http.routers.error-pages-router.entrypoints: web
      traefik.http.routers.error-pages-router.middlewares: error-pages-middleware
      traefik.http.middlewares.error-pages-middleware.errors.status: 400-599
      traefik.http.middlewares.error-pages-middleware.errors.service: errors
      traefik.http.middlewares.error-pages-middleware.errors.query: /{status}.html
      traefik.http.services.error-pages-service.loadbalancer.server.port: 8080
    depends_on:
      - traefik

networks:
  default:
    external: true
    name: traefik

```

---

<div class="post-metadata">

**Author:** ![bluepuma77](https://avatars.discourse-cdn.com/v4/letter/b/a9adbd/32.png) [@bluepuma77](https://community.traefik.io/u/bluepuma77)\
**Post date:** [April 1, 2023, 6:28am UTC](https://community.traefik.io/t/the-service-errors-docker-does-not-exist/18105/2 "2023-04-01T06:28:12Z")

</div>

Share your Traefik static and dynamic config.

---

<div class="post-metadata">

**Author:** ![anon79327971](https://avatars.discourse-cdn.com/v4/letter/a/22d042/32.png) [@anon79327971](https://community.traefik.io/u/anon79327971)\
**Post date:** [April 1, 2023, 12:34pm UTC](https://community.traefik.io/t/the-service-errors-docker-does-not-exist/18105/3 "2023-04-01T12:34:27Z")

</div>

Dynamic is already there. Static is here:

```auto
global:
  checkNewVersion: true
  sendAnonymousUsage: false # true by default

# (Optional) Log information
# ---
# log:
# level: ERROR # DEBUG, INFO, WARNING, ERROR, CRITICAL
# format: common # common, json, logfmt
# filePath: /var/log/traefik/traefik.log

# (Optional) Accesslog
# ---
# accesslog:
  # format: common # common, json, logfmt
  # filePath: /var/log/traefik/access.log

# (Optional) Enable API and Dashboard
# ---
api:
  dashboard:false # true by default

# Entry Points configuration
# ---
entryPoints:
  web:
    address: :80
    # (Optional) Redirect to HTTPS
    # ---
    http:
       redirections:
         entryPoint:
           to: websecure
           scheme: https

  websecure:
    address: :443

certificatesResolvers:
   staging:
     acme:
       email: contact@example
       storage: /etc/traefik/acme.json
       caServer: "https://acme-staging-v02.api.letsencrypt.org/directory"
       httpChallenge:
         entryPoint: web

   production:
     acme:
       email: contact@example
       storage: /etc/traefik/acme.json
       caServer: "https://acme-v02.api.letsencrypt.org/directory"
       httpChallenge:
         entryPoint: web
tls:
  options:
    default:
      sniStrict: true

providers:
  docker:
    exposedByDefault: false # Default is true
  file:
    # watch for dynamic configuration changes
    directory: /etc/traefik
    watch: true

```

---

<div class="post-metadata">

**Author:** ![bluepuma77](https://avatars.discourse-cdn.com/v4/letter/b/a9adbd/32.png) [@bluepuma77](https://community.traefik.io/u/bluepuma77)\
**Post date:** [April 1, 2023, 2:46pm UTC](https://community.traefik.io/t/the-service-errors-docker-does-not-exist/18105/4 "2023-04-01T14:46:51Z")

</div>

Usually labels use a dash, have you tried that?

```auto
version: "3"
services:
  my-container:
    # ...
    labels:
      - traefik.http.routers.my-container.rule=Host(`example.com`)

```

([Source](https://doc.traefik.io/traefik/providers/docker/))

---

<div class="post-metadata">

**Author:** ![anon79327971](https://avatars.discourse-cdn.com/v4/letter/a/22d042/32.png) [@anon79327971](https://community.traefik.io/u/anon79327971)\
**Post date:** [April 1, 2023, 3:43pm UTC](https://community.traefik.io/t/the-service-errors-docker-does-not-exist/18105/5 "2023-04-01T15:43:09Z")

</div>

Just tryed that, changes nothing :(.

---

<div class="post-metadata">

**Author:** ![bluepuma77](https://avatars.discourse-cdn.com/v4/letter/b/a9adbd/32.png) [@bluepuma77](https://community.traefik.io/u/bluepuma77)\
**Post date:** [April 1, 2023, 4:29pm UTC](https://community.traefik.io/t/the-service-errors-docker-does-not-exist/18105/6 "2023-04-01T16:29:30Z")

</div>

You use `providers.file.directory`, are there other (old) config files in the directory?

---

<div class="post-metadata">

**Author:** ![anon79327971](https://avatars.discourse-cdn.com/v4/letter/a/22d042/32.png) [@anon79327971](https://community.traefik.io/u/anon79327971)\
**Post date:** [April 1, 2023, 9:28pm UTC](https://community.traefik.io/t/the-service-errors-docker-does-not-exist/18105/7 "2023-04-01T21:28:03Z")

</div>

Nope, only acme.json. Not sure why I put that there, must have been copied from somewhere.
