harbor: docker 20.10 pull proxy cache image failed: Error response from daemon: missing or empty Content-Type header
If you are reporting a problem, please make sure the following information are provided:
Expected behavior and actual behavior:
should pull proxy cache repo images success.
but docker 20.10 pull proxy cache repo images got error missing or empty Content-Type header
Steps to reproduce the problem:
# docker.io is a proxy cache project
docker pull ${HARBOR_HOST}/docker.io/library/alpine:3.12
Error response from daemon: missing or empty Content-Type header
logs of docker desktop for mac

works well with docker 19.03.x normal project works well
Versions: Please specify the versions of following systems.
- harbor version: v2.1.1-5f52168e
- docker engine version: 20.10
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Reactions: 22
- Comments: 21 (5 by maintainers)
Commits related to this issue
- Add content type and length in header Fixes #13740 Update ManifestExist to return Descriptor instead of digest Signed-off-by: stonezdj <stonezdj@gmail.com> — committed to stonezdj/harbor by stonezdj 4 years ago
- Add content type and length in header Fixes #13740 Update ManifestExist to return Descriptor instead of digest Signed-off-by: stonezdj <stonezdj@gmail.com> — committed to stonezdj/harbor by stonezdj 4 years ago
- Add content type and length in header Fixes #13740 Update ManifestExist to return Descriptor instead of digest Signed-off-by: stonezdj <stonezdj@gmail.com> — committed to stonezdj/harbor by stonezdj 4 years ago
- Add content type and length in header Fixes #13740 Update ManifestExist to return Descriptor instead of digest Signed-off-by: stonezdj <stonezdj@gmail.com> — committed to stonezdj/harbor by stonezdj 4 years ago
- Add content type and length in header Fixes #13740 Update ManifestExist to return Descriptor instead of digest Signed-off-by: stonezdj <stonezdj@gmail.com> — committed to stonezdj/harbor by stonezdj 4 years ago
- Add content type and length in header Fixes #13740 Update ManifestExist to return Descriptor instead of digest Signed-off-by: stonezdj <stonezdj@gmail.com> — committed to stonezdj/harbor by stonezdj 4 years ago
- Add content type and length in header Fixes #13740 Update ManifestExist to return Descriptor instead of digest Signed-off-by: stonezdj <stonezdj@gmail.com> — committed to stonezdj/harbor by stonezdj 4 years ago
- Add content type and length in header Fixes #13740 Update ManifestExist to return Descriptor instead of digest Signed-off-by: stonezdj <stonezdj@gmail.com> — committed to stonezdj/harbor by stonezdj 4 years ago
- Add content type and length in header Fixes #13740 Update ManifestExist to return Descriptor instead of digest Signed-off-by: stonezdj <stonezdj@gmail.com> — committed to stonezdj/harbor by stonezdj 4 years ago
- Add content type and length in header Fixes #13740 Update ManifestExist to return Descriptor instead of digest Signed-off-by: stonezdj <stonezdj@gmail.com> — committed to stonezdj/harbor by stonezdj 4 years ago
- Add content type and length in header Fixes #13740 Update ManifestExist to return Descriptor instead of digest Signed-off-by: stonezdj <stonezdj@gmail.com> — committed to stonezdj/harbor by stonezdj 4 years ago
- Add content type and length in header Fixes #13740 Update ManifestExist to return Descriptor instead of digest Signed-off-by: stonezdj <stonezdj@gmail.com> — committed to stonezdj/harbor by stonezdj 4 years ago
- Add content type and length in header Fixes #13740 Update ManifestExist to return Descriptor instead of digest Signed-off-by: stonezdj <stonezdj@gmail.com> — committed to stonezdj/harbor by stonezdj 4 years ago
- Add content type and length in header Fixes #13740 Update ManifestExist to return Descriptor instead of digest Signed-off-by: stonezdj <stonezdj@gmail.com> — committed to stonezdj/harbor by stonezdj 4 years ago
- Add content type and length in header Fixes #13740 Update ManifestExist to return Descriptor instead of digest Signed-off-by: stonezdj <stonezdj@gmail.com> — committed to stonezdj/harbor by stonezdj 4 years ago
- Add content type and length in header Fixes #13740 Update ManifestExist to return Descriptor instead of digest Signed-off-by: stonezdj <stonezdj@gmail.com> — committed to stonezdj/harbor by stonezdj 4 years ago
- Add content type and length in header Fixes #13740 Update ManifestExist to return Descriptor instead of digest For docker 20.10 or containerd, it HEAD the manifest before pull, then it GET the manife... — committed to stonezdj/harbor by stonezdj 4 years ago
- Add content type and length in header Fixes #13740 Update ManifestExist to return Descriptor instead of digest For docker 20.10 or containerd, it HEAD the manifest before pull, then it GET the manife... — committed to stonezdj/harbor by stonezdj 4 years ago
- Add content type and length in header Fixes #13740 Update ManifestExist to return Descriptor instead of digest For docker 20.10 or containerd, it HEAD the manifest before pull, then it GET the manife... — committed to stonezdj/harbor by stonezdj 4 years ago
- Add content type and length in header Fixes #13740 Update ManifestExist to return Descriptor instead of digest For docker 20.10 or containerd, it HEAD the manifest before pull, then it GET the manife... — committed to stonezdj/harbor by stonezdj 4 years ago
@morlay thanks for providing a fixed image.
But may I suggest to release this fix as soon as possible - maybe as a minor update for
v2.1.2? Every new harbor-user is currently stumbling over it and may spend ages figuring out what is wrong before finding this issue here…I installed 2.1.3-rc1 and can confirm that the problem no longer occurs.
Is there a workaround to this for now while the patch is created?
I hope that this is a sign of the imminent release of either 2.1.3 or 2.2.0 with the included bugfix? 😃
just downgrade docker to 18.x
for example, in debian
Thanks for the quick response, but this is not a closed issue if the fix is not released yet.
This issue may reproduced, if harbor proxied over cloudflare.
This is closed by github hook
fix #issueidI believe v2.1.3 will release soon https://github.com/goharbor/harbor/labels/target%2F2.1.3
Reproduced in Docker version 20.10.0, build 7287ab3