Skip to content

Docker 28.3.3: clients apparently can no longer push unauthenticatedly to registry without X-Registry-Auth header present #50614

@felixfontein

Description

@felixfontein

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

28.3.3

docker info

(should not be relevant)

Additional Info

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bugBugs are bugs. The cause may or may not be known at triage time so debugging may be needed.status/0-triage

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions