Docker Engine v29: Breaking API Changes and Traefik Impact

Recently, my office laptop was replaced, and I had to set up a Sitecore 10.2 project from scratch. As part of the setup, I installed the latest available Docker Engine v29 - assuming it would work just like before.
The containers started without any issues, but something felt off almost immediately. Traefik suddenly stopped working. Routes weren’t loading, services were unreachable, and yet everything looked “healthy” on the Docker side.
It turned out this wasn’t a Traefik bug at all. The real cause was a Docker API compatibility change introduced in Docker Engine v29.
This post explains what changed, why Traefik broke, and why Docker v28.1.1 is currently the safer choice when working with setups like Sitecore 10.2, especially if you don’t want to introduce Docker upgrades or complex changes.
What Changed in Docker Engine v29
With Docker Engine v29, the Docker Engine increased its minimum supported API version. Older API versions are no longer accepted by the daemon.
As reported in the Docker community forum, Docker Engine v29 now rejects clients using older API versions with errors like:
This is documented in the official Docker v29 blog/release notes - Docker even shows ways to temporarily override the minimum API version (viaError response from daemon: client version 1.24 is too old. Minimum supported API version is 1.44 …
DOCKER_MIN_API_VERSION or daemon.json), but this is mainly a transition workaround - not a long-term fix.
- Docker 29 increased minimum API version, breaks Traefik reverse proxy
- Docker Engine v29: Foundational Updates for the Future
Why Traefik Broke
Traefik relies on Docker’s API for container discovery and routing. At the time of Docker 29’s release, Traefik’s Docker provider still used API version 1.24 internally.
Because Docker Engine v29 no longer supports that API version:
- Traefik fails to connect to the Docker socket
- Containers are not discovered
- Routes are not created
- Services appear down even though containers are running
This issue is also discussed in the Traefik community: Traefik stops working, it uses old API version 1.24
In short, Traefik can’t “see” Docker anymore.
Why We’re Sticking to Docker 28.1.1 (for now)
Docker Engine v28.1.1 still supports older API versions and works perfectly with current Traefik releases.
| Docker Version | Min API | Traefik Support | Stability |
|---|---|---|---|
| 28.1.1 | v1.24 | Fully compatible | ✅ Stable |
| 29.x | v1.44 | Breaks Traefik | ❌ Risky |
Running Docker Engine v28.1.1 provides a stable and predictable environment:
- No downtime - services continue running without unexpected interruptions
- No broken routing - Traefik functions normally with full container discovery
- Stable production behavior - avoids API compatibility surprises introduced in v29
Best Practices
To maintain stability and avoid unexpected outages:
- Pin Docker Engine to v28.1.1 in all environments
- Disable or avoid automatic upgrades to the latest Docker versions
- Actively monitor Traefik releases for official Docker Engine v29 API compatibility
- Test Docker upgrades in developer environment first, especially when reverse proxies are involved
- Document the reason for version pinning to prevent accidental upgrades by team members
Following these practices ensures predictable behavior and gives your team control over when and how critical infrastructure upgrades occur.
Conclusion
Docker 29’s API enforcement change shows how infrastructure upgrades can impact the wider ecosystem. While Docker Engine works as expected, tools like Traefik depend on stable and backward-compatible APIs to function correctly.
Until Traefik supports Docker Engine v29 higher minimum API version, Docker Engine v28.1.1 remains the safest and most production-ready choice, helping teams avoid routing issues, maintain uptime, and control upgrade timing.
References
- Docker Community Forum - Docker 29 increased minimum API version, breaks Traefik reverse proxy