Description
I noticed that once Docker daemon is updated to 28.3.3, that I can no longer push to an unprotected registry without providing X-Registry-Auth. This happens for example when using Docker SDK for Python's APIClient.push(), which only provides X-Registry-Auth when credentials are present.
Setting X-Registry-Auth to {} or e30= (Base64 of {}) seems to fix the issue.
I got the idea to send a non-empty header from #50415. The registry in question is distribution:2.8.3 (https://github.com/distribution/distribution/releases/tag/v2.8.3), if that's relevant.
(I reproduced this with Ansible's community.docker's docker_image module, both on RHEL 9.6 and on Arch Linux, with Docker 28.3.3.)
Reproduce
Start a distribution:2.8.3 registry.
Use Docker SDK for Python to push an image to it.
Expected behavior
It works.
docker version
docker info
Additional Info
No response