Docker Update 4.56 and onwards issues with traefik:v2.5.3-windowsservercore-1809

Hi, Since around 4.56.0 and any newer versions myTraefik container has stopped working and therefore my other containers can no longer connect to each other and the sitecore 10.3 xm toplogy setup that I am using no longer works. I get the following errors in the logs on the Traefik container:

level=error msg="Provider connection error Error response from daemon: , retyring in (random time in seconds)" ProviderName=docker
level=error msg="Failed to retrieve information of the docker client and server host: Error response from daemon: " providerName=docker

some Env details:
COMPOSE_PROJECT_NAME=sitecore-xm1
COMPOSE_PROJECT_VERSION=1.0.0
SITECORE_DOCKER_REGISTRY=scr.sitecore.com/sxp/
SITECORE_DOCKER_MODULES_REGISTRY=scr.sitecore.com/sxp/modules/
SITECORE_TOOLS_REGISTRY=scr.sitecore.com/tools/
TOOLS_VERSION=10.2-1809
SITECORE_VERSION=10.3.0-ltsc2019
SITECORE_ASSETS_VERSION=6.4-1809
HEADLESS_SERVICES_VERSION=21.0.583-1809
MANAGEMENT_SERVICES_VERSION=5.1-1809
EXTERNAL_IMAGE_TAG_SUFFIX=ltsc2019
TRAEFIK_IMAGE=traefik:v2.5.3-windowsservercore-1809
TRAEFIK_ISOLATION=hyperv
ISOLATION=default

If I revert to an older version like 4.44.0 then it works fine again. Can anyone assist on how I would resolve this?

Thanks

There is no Docker 4.56, maybe you mean Docker Desktop 4.56. Make sure to update Docker and Traefik, as API for discovering services has changed, and you need both with the latest version.

Thanks. Yes I meant Docker Desktop. What version of Traefik would I use for Docker Desktop 4.56+ given I am currently using traefik:v2.5.3-windowsservercore-1809?

If I updated to traefik:v3.4.1-windowsservercore-1809, can I assume this would still work and with the v3 are there any new configurations I would need to consider:

services:
traefik:
isolation: ${TRAEFIK_ISOLATION}
image: ${TRAEFIK_IMAGE}
command:

  • "--ping"
  • "--api.insecure=true"
  • "--providers.docker.endpoint=npipe:////./pipe/docker_engine"
  • "--providers.docker.exposedByDefault=false"
  • "--providers.file.directory=C:/etc/traefik/config/dynamic"
  • "--entryPoints.websecure.address=:443"
  • "--entryPoints.websecure.forwardedHeaders.insecure"
    ports:
  • "443:443"
  • "8079:8080"
    healthcheck:
    test: ["CMD", "traefik", "healthcheck", "--ping"]
    volumes:
  • source: \.\pipe\docker_engine
    target: \.\pipe\docker_engine
    type: npipe
  • ./traefik:C:/etc/traefik
    depends_on:
    id:
    condition: service_healthy
    cd:
    condition: service_healthy
    cm:
    condition: service_healthy

So I have updated to Docker Desktop 4.60.1 and traefik:v3.4.1-windowsservercore-1809 and I still get the same issue:

2026-02-16T15:58:43Z ERR Failed to retrieve information of the docker client and server host error="Error response from daemon: " providerName=docker

2026-02-16T15:58:43Z ERR Provider error, retrying in 3.149567805s error="Error response from daemon: " providerName=docker

Same Service Configuration

services:
traefik:
isolation: ${TRAEFIK_ISOLATION}
image: ${TRAEFIK_IMAGE}
command:

  • "--ping"
  • "--api.insecure=true"
  • "--providers.docker.endpoint=npipe:////./pipe/docker_engine"
  • "--providers.docker.exposedByDefault=false"
  • "--providers.file.directory=C:/etc/traefik/config/dynamic"
  • "--entryPoints.websecure.address=:443"
  • "--entryPoints.websecure.forwardedHeaders.insecure"
    ports:
  • "443:443"
  • "8079:8080"
    healthcheck:
    test: ["CMD", "traefik", "healthcheck", "--ping"]
    volumes:
  • source: \.\pipe\docker_engine
    target: \.\pipe\docker_engine
    type: npipe
  • ./traefik:C:/etc/traefik
    depends_on:
    id:
    condition: service_healthy
    cd:
    condition: service_healthy
    cm:
    condition: service_healthy

Check Traefik releases (link) and Traefik container images (link).

Thanks but I have already tried the newest windowsservercore-1809 version? Am I just suppose to try different ones until something works?

Just search the hub for latest windows image (link), which is v3.6.8-windowsservercore-ltsc2022.

It seems "Windows Server 2019" ("1809") is not supported anymore. You would need to downgrade Docker Desktop to a version with Docker Engine < v29 for the old Traefik version to continue to work.

OK. So I have downloaded and added traefik:v3.6.8-windowsservercore-ltsc2022

This also I assume means I need to change my env file for ltsc2022 for my sitecore 10.3.0 docker environment. So I followed this short guide:

Updated env:

TOOLS_VERSION=10.2-1809
SITECORE_VERSION=10.3.0-ltsc2022
SITECORE_ASSETS_VERSION=6.4-1809
HEADLESS_SERVICES_VERSION=21.0.583-1809
MANAGEMENT_SERVICES_VERSION=5.1-1809
EXTERNAL_IMAGE_TAG_SUFFIX=ltsc2022

TRAEFIK_IMAGE=traefik:v3.6.8-windowsservercore-ltsc2022
TRAEFIK_ISOLATION=hyperv
ISOLATION=process

Now everything is spinning up again but I still get 404 page when I try and hit one of my server containers. Looking at the Traefik logs I now see this:

2026-02-17T16:39:00Z ERR error="service \"cm-sitecore-xm1\" error: port is missing" container=cm-sitecore-xm1-04dcfd403936428aeacfb2e421d39fc3bac17e939b8fe5f7b4b09c0c9d0df01b providerName=docker

2026-02-17T16:39:00Z ERR error="service \"cd-sitecore-xm1\" error: port is missing" container=cd-sitecore-xm1-3196c0b89743ee9b7b4d4b0afc1d5d8f15ce1795d79ab17ee5920cf8a18cc0ca providerName=docker

2026-02-17T16:39:00Z ERR error="service \"id-sitecore-xm1\" error: port is missing" container=id-sitecore-xm1-f54bd2cb08366423246ed91fd5fecbe23e72f81081f6d80f75460f52ca8e1345 providerName=docker

So is there some additional configuration I am missing here?

Docker Compose:

services:
traefik:
isolation: ${TRAEFIK_ISOLATION}
image: ${TRAEFIK_IMAGE}
command:

  • "--ping"
  • "--api.insecure=true"
  • "--providers.docker.endpoint=npipe:////./pipe/docker_engine"
  • "--providers.docker.exposedByDefault=false"
  • "--providers.file.directory=C:/etc/traefik/config/dynamic"
  • "--entryPoints.websecure.address=:443"
  • "--entryPoints.websecure.forwardedHeaders.insecure"
    ports:
  • "443:443"
  • "8079:8080"
    healthcheck:
    test: ["CMD", "traefik", "healthcheck", "--ping"]
    volumes:
  • source: \.\pipe\docker_engine
    target: \.\pipe\docker_engine
    type: npipe
  • ./traefik:C:/etc/traefik
    depends_on:
    id:
    condition: service_healthy
    cd:
    condition: service_healthy
    cm:
    condition: service_healthy
    redis:
    isolation: ${ISOLATION}
    image: ${SITECORE_DOCKER_REGISTRY}redis:3.2.100-${EXTERNAL_IMAGE_TAG_SUFFIX}
    mssql:
    isolation: ${ISOLATION}
    image: ${SITECORE_DOCKER_REGISTRY}nonproduction/mssql-developer:2017-${EXTERNAL_IMAGE_TAG_SUFFIX}
    environment:
    SA_PASSWORD: ${SQL_SA_PASSWORD}
    ACCEPT_EULA: "Y"
    ports:
  • "14330:1433"
    volumes:
  • type: bind
    source: .\data\mssql-data
    target: c:\data
    mssql-init:
    isolation: ${ISOLATION}
    image: ${SITECORE_DOCKER_REGISTRY}sitecore-xm1-mssql-init:${SITECORE_VERSION}
    environment:
    SQL_SERVER: ${SQL_SERVER}
    SQL_ADMIN_LOGIN: ${SQL_SA_LOGIN}
    SQL_ADMIN_PASSWORD: ${SQL_SA_PASSWORD}
    SQL_DATABASE_PREFIX: ${SQL_DATABASE_PREFIX}
    SQL_CUSTOM_DATABASE_PREFIX_UPDATE_FROM: ${SQL_CUSTOM_DATABASE_PREFIX_UPDATE_FROM}
    SITECORE_ADMIN_PASSWORD: ${SITECORE_ADMIN_PASSWORD}
    POST_DEPLOYMENT_WAIT_PERIOD: 300
    healthcheck:
    test: ["CMD", "powershell", "-command", "if ([System.Environment]::GetEnvironmentVariable('DatabasesDeploymentStatus', 'Machine') -eq 'Complete') { exit 0 } else { exit 1}"]
    start_period: 300s
    interval: 5s
    depends_on:
    mssql:
    condition: service_healthy
    solr:
    isolation: ${ISOLATION}
    image: ${SITECORE_DOCKER_REGISTRY}nonproduction/solr:8.11.2-${EXTERNAL_IMAGE_TAG_SUFFIX}
    ports:
  • "8984:8983"
    volumes:
  • type: bind
    source: .\data\solr-data
    target: c:\data
    environment:
    SOLR_MODE: solrcloud
    mem_limit: 8GB
    healthcheck:
    test: ["CMD", "powershell", "-command", "try { $$statusCode = (iwr http://solr:8983/solr/admin/cores?action=STATUS -UseBasicParsing).StatusCode; if ($$statusCode -eq 200) { exit 0 } else { exit 1} } catch { exit 1 }"]
    solr-init:
    isolation: ${ISOLATION}
    image: ${SITECORE_DOCKER_REGISTRY}sitecore-xm1-solr-init:${SITECORE_VERSION}
    environment:
    SITECORE_SOLR_CONNECTION_STRING: http://solr:8983/solr
    SOLR_CORE_PREFIX_NAME: ${SOLR_CORE_PREFIX_NAME}
    depends_on:
    solr:
    condition: service_healthy
    id:
    isolation: ${ISOLATION}
    image: ${SITECORE_DOCKER_REGISTRY}sitecore-id7:${SITECORE_VERSION}
    environment:
    Sitecore_Sitecore__IdentityServer__SitecoreMemberShipOptions__ConnectionString: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Core;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
    Sitecore_Sitecore__IdentityServer__AccountOptions__PasswordRecoveryUrl: https://${CM_HOST}/sitecore/login?rc=1
    Sitecore_Sitecore__IdentityServer__Clients__PasswordClient__ClientSecrets__ClientSecret1: ${SITECORE_IDSECRET}
    Sitecore_Sitecore__IdentityServer__Clients__DefaultClient__AllowedCorsOrigins__AllowedCorsOriginsGroup1: https://${CM_HOST}
    Sitecore_Sitecore__IdentityServer__CertificateRawData: ${SITECORE_ID_CERTIFICATE}
    Sitecore_Sitecore__IdentityServer__PublicOrigin: https://${ID_HOST}
    Sitecore_Sitecore__IdentityServer__CertificateRawDataPassword: ${SITECORE_ID_CERTIFICATE_PASSWORD}
    Sitecore_License: ${SITECORE_LICENSE}
    healthcheck:
    test: ["CMD", "pwsh", "-command", "C:/Healthchecks/Healthcheck.ps1"]
    timeout: 300s
    depends_on:
    mssql-init:
    condition: service_healthy
    labels:
  • "traefik.enable=true"
  • "traefik.http.routers.id-secure.entrypoints=websecure"
  • "traefik.http.routers.id-secure.rule=Host(${ID_HOST})"
  • "traefik.http.routers.id-secure.tls=true"
    cd:
    isolation: ${ISOLATION}
    image: ${SITECORE_DOCKER_REGISTRY}sitecore-xm1-cd:${SITECORE_VERSION}
    depends_on:
    mssql-init:
    condition: service_healthy
    solr-init:
    condition: service_started
    redis:
    condition: service_started
    environment:
    Sitecore_AppSettings_instanceNameMode:define: default
    Sitecore_ConnectionStrings_Security: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Core;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
    Sitecore_ConnectionStrings_Web: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Web;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
    Sitecore_ConnectionStrings_ExperienceForms: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.ExperienceForms;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
    Sitecore_ConnectionStrings_Solr.Search: http://solr:8983/solr;solrCloud=true
    Sitecore_ConnectionStrings_Redis.Sessions: redis:6379,ssl=False,abortConnect=False
    Sitecore_License: ${SITECORE_LICENSE}
    SOLR_CORE_PREFIX_NAME: ${SOLR_CORE_PREFIX_NAME}
    MEDIA_REQUEST_PROTECTION_SHARED_SECRET: ${MEDIA_REQUEST_PROTECTION_SHARED_SECRET}
    LOG_LEVEL_VALUE: ${LOG_LEVEL_VALUE}
    healthcheck:
    test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
    timeout: 300s
    labels:
  • "traefik.enable=true"
  • "traefik.http.routers.cd-secure.entrypoints=websecure"
  • "traefik.http.routers.cd-secure.rule=Host(${CD_HOST})"
  • "traefik.http.routers.cd-secure.tls=true"
    volumes:
  • type: bind
    source: .\data\device-detection-data
    target: C:\inetpub\wwwroot\App_Data\DeviceDetection
    cm:
    isolation: ${ISOLATION}
    image: ${SITECORE_DOCKER_REGISTRY}sitecore-xm1-cm:${SITECORE_VERSION}
    depends_on:
    mssql-init:
    condition: service_healthy
    solr-init:
    condition: service_started
    id:
    condition: service_started
    environment:
    Sitecore_AppSettings_instanceNameMode:define: default
    Sitecore_ConnectionStrings_Core: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Core;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
    Sitecore_ConnectionStrings_Security: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Core;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
    Sitecore_ConnectionStrings_Master: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Master;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
    Sitecore_ConnectionStrings_Web: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Web;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
    Sitecore_ConnectionStrings_ExperienceForms: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.ExperienceForms;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
    Sitecore_ConnectionStrings_Products: Data Source=173.247.95.58;Database=amiuser;User ID=allegromicro_sitecore;Password=yLNsiiRu4!
    Sitecore_ConnectionStrings_Solr.Search: http://solr:8983/solr;solrCloud=true
    Sitecore_ConnectionStrings_Sitecoreidentity.secret: ${SITECORE_IDSECRET}
    Sitecore_AppSettings_Telerik.AsyncUpload.ConfigurationEncryptionKey: ${TELERIK_ENCRYPTION_KEY}
    Sitecore_AppSettings_Telerik.Upload.ConfigurationHashKey: ${TELERIK_ENCRYPTION_KEY}
    Sitecore_AppSettings_Telerik.Web.UI.DialogParametersEncryptionKey: ${TELERIK_ENCRYPTION_KEY}
    Sitecore_License: ${SITECORE_LICENSE}
    Sitecore_GraphQL_Enabled: ${SITECORE_GRAPHQL_ENABLED}
    Sitecore_GraphQL_ExposePlayground: ${SITECORE_GRAPHQL_EXPOSEPLAYGROUND}
    Sitecore_GraphQL_UploadMediaOptions_EncryptionKey: ${SITECORE_GRAPHQL_UPLOADMEDIAOPTIONS_ENCRYPTIONKEY}
    Sitecore_Identity_Server_Authority: https://${ID_HOST}
    Sitecore_Identity_Server_InternalAuthority: http://id
    Sitecore_Identity_Server_CallbackAuthority: https://${CM_HOST}
    Sitecore_Identity_Server_Require_Https: "false"
    SOLR_CORE_PREFIX_NAME: ${SOLR_CORE_PREFIX_NAME}
    MEDIA_REQUEST_PROTECTION_SHARED_SECRET: ${MEDIA_REQUEST_PROTECTION_SHARED_SECRET}
    LOG_LEVEL_VALUE: ${LOG_LEVEL_VALUE}
    healthcheck:
    test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
    timeout: 300s
    labels:
  • "traefik.enable=true"
  • "traefik.http.middlewares.force-STS-Header.headers.forceSTSHeader=true"
  • "traefik.http.middlewares.force-STS-Header.headers.stsSeconds=31536000"
  • "traefik.http.routers.cm-secure.entrypoints=websecure"
  • "traefik.http.routers.cm-secure.rule=Host(${CM_HOST})"
  • "traefik.http.routers.cm-secure.tls=true"
  • "traefik.http.routers.cm-secure.middlewares=force-STS-Header"

seems the internal port for a service needs to be specified. Maybe the target services used EXPOSE before to indicate which port to use.

  whoami:
    image: traefik/whoami:v1.11
    networks:
      - proxy
    labels:
      - traefik.enable=true
      - traefik.http.routers.mywhoami.rule=Host(`whoami.example.com`)
      - traefik.http.services.mywhoami.loadbalancer.server.port=80

I havent changed these configurations so EXPOSE hasnt been removed if that is what you mean?

how would I go about updating the config given they are effectively web servers served over https/ http?

As an example for my CM container instance I have added networks:proxy and the loadbalancer.server.port (at the bottom) for port 80, or should it be for 443 as I want to serve on https?

cm:
    isolation: ${ISOLATION}
    image: ${SITECORE_DOCKER_REGISTRY}sitecore-xm1-cm:${SITECORE_VERSION}
    networks:
      - proxy
    depends_on:
      mssql-init:
        condition: service_healthy
      solr-init:
        condition: service_started
      id:
        condition: service_started
    environment:
      Sitecore_AppSettings_instanceNameMode:define: default
      Sitecore_ConnectionStrings_Core: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Core;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
      Sitecore_ConnectionStrings_Security: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Core;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
      Sitecore_ConnectionStrings_Master: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Master;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
      Sitecore_ConnectionStrings_Web: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.Web;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
      Sitecore_ConnectionStrings_ExperienceForms: Data Source=${SQL_SERVER};Initial Catalog=${SQL_DATABASE_PREFIX}.ExperienceForms;User ID=${SQL_SA_LOGIN};Password=${SQL_SA_PASSWORD}
      Sitecore_ConnectionStrings_Products: Data Source=173.247.95.58;Database=amiuser;User ID=allegromicro_sitecore;Password=yLNsiiRu4!
      Sitecore_ConnectionStrings_Solr.Search: http://solr:8983/solr;solrCloud=true
      Sitecore_ConnectionStrings_Sitecoreidentity.secret: ${SITECORE_IDSECRET}
      Sitecore_AppSettings_Telerik.AsyncUpload.ConfigurationEncryptionKey: ${TELERIK_ENCRYPTION_KEY}
      Sitecore_AppSettings_Telerik.Upload.ConfigurationHashKey: ${TELERIK_ENCRYPTION_KEY}
      Sitecore_AppSettings_Telerik.Web.UI.DialogParametersEncryptionKey: ${TELERIK_ENCRYPTION_KEY}
      Sitecore_License: ${SITECORE_LICENSE}
      Sitecore_GraphQL_Enabled: ${SITECORE_GRAPHQL_ENABLED}
      Sitecore_GraphQL_ExposePlayground: ${SITECORE_GRAPHQL_EXPOSEPLAYGROUND}
      Sitecore_GraphQL_UploadMediaOptions_EncryptionKey: ${SITECORE_GRAPHQL_UPLOADMEDIAOPTIONS_ENCRYPTIONKEY}
      Sitecore_Identity_Server_Authority: https://${ID_HOST}
      Sitecore_Identity_Server_InternalAuthority: http://id
      Sitecore_Identity_Server_CallbackAuthority: https://${CM_HOST}
      Sitecore_Identity_Server_Require_Https: "false"
      SOLR_CORE_PREFIX_NAME: ${SOLR_CORE_PREFIX_NAME}
      MEDIA_REQUEST_PROTECTION_SHARED_SECRET: ${MEDIA_REQUEST_PROTECTION_SHARED_SECRET}
      LOG_LEVEL_VALUE: ${LOG_LEVEL_VALUE}
    healthcheck:
      test: ["CMD", "powershell", "-command", "C:/Healthchecks/Healthcheck.ps1"]
      timeout: 300s
    labels:
      - "traefik.enable=true"
      - "traefik.http.middlewares.force-STS-Header.headers.forceSTSHeader=true"
      - "traefik.http.middlewares.force-STS-Header.headers.stsSeconds=31536000"
      - "traefik.http.routers.cm-secure.entrypoints=websecure"
      - "traefik.http.routers.cm-secure.rule=Host(`${CM_HOST}`)"
      - "traefik.http.routers.cm-secure.tls=true"
      - "traefik.http.routers.cm-secure.middlewares=force-STS-Header"
      - "traefik.http.services.cm.loadbalancer.server.port=80" * or 443??

Nevermind. I think I have it working now just by adding the server port setting to my container instances on the traefik network. Will test it further now it looks like it is working. Thanks