Steps using their own custom DinD image version 29+ (or latest) in Self-hosted Runner or Runtime v3 in Cloud Runner may get the following error:
Error response from daemon: client version 1.41 is too old. Minimum supported API version is 1.44, please upgrade your client to a newer version
Why this happens?
It means the step is using an old docker client and docker engine v29+.
See the release notes:
https://docs.docker.com/engine/release-notes/29
Current Behaviour on Self-hosted
By default, when you specify a docker service in the YAML, docker cli version 20.10.24 is mounted into /usr/bin/docker.
When docker service image v29+ is specified, it may break due to this incompatibility.
Otherwise, it defaults docker engine v25 which does not have compatibility issues.
Current Behaviour on Cloud v2 (default cloud runtime)
By default, when you specify a docker service in the YAML, docker cli version 20.10.24 is mounted into /usr/bin/docker.
However, it is not possible to specify custom docker image.
Therefore, this issue is not present.
Current Behaviour on Cloud v3
By default, when you specify a docker service in the YAML, docker cli is NOT mounted.
The default docker service image is docker:dind. But you can specify another one.
The issue can only only happen here if you bring a docker cli older than v25.
Solutions
Quick fix
When specifying docker image, use an image compatible with the docker cli 20.10.14. Ex: You can use docker:28-dind instead of docker:dind or docker:latest.
Preferable
The build image needs to have docker cli v25+ baked and present in this location: /usr/local/bin/docker. This one will have precedence over the one the mounted on /usr/bin/docker.