FATA[0001] Error: Status 400 trying to push repository username/reponame:mycustomtag "Access denied: is a private image

“Login Succeeded” but I’m getting this error: "Error: Status 400 trying to push repository username/reponame:mycustomtag “Access denied: is a private image”

Everything worked before. I have just removed two ADD commands from Dockerfile. Is this could be a reason?
I’m also using CircleCI and have tried several times.

Base image is FROM ubuntu:12.04

We’ve been working on some 400 errors today. Could you try again and see if our fixes have also improved your situation?

If you’re still seeing a problem, please make sure your Docker daemon is running in debug mode (-D) and grab the logs from the time you pushed. Compress them and create a support ticket (support.docker.com). It will also help if you send us your docker info and docker version.

I’ve tried again - it does not work

docker --version
Docker version 1.4.1-circleci, build 1b532d1

docker info
Containers: 23
Images: 27
Storage Driver: btrfs
Execution Driver: lxc-1.0.6
Kernel Version: 3.14.28-031428-generic
Operating System: Ubuntu precise (12.04.5 LTS) (containerized)
CPUs: 2
Total Memory: 240.2 GiB
Name: box509
WARNING: No memory limit support
WARNING: No swap limit support

Look like everything is working now

I have the same problem

I had this problem because I was using the docker that came with ubuntu 14.04, which was very old.
Updating to the latest fixed me problem:

% wget -q https://github.com/coreos/fleet/releases/download/v0.10.0/fleet-v0.10.0-linux-amd64.tar.gz
% tar -xzf fleet-v0.10.0-linux-amd64.tar.gz
% cp /root/fleet-v0.10.0-linux-amd64/fleetctl /usr/local/bin

The fix for the 400 errors was pushed server-side on the Docker Hub service – so it should be resolved for everyone regardless of if you updated or not.

If you’re going to update, you should update to the version distributed by Docker and not third party distributions which may be old or include non-mainstream patches.

I’m still having the same error, when trying to push repository.

Error: Status 400 trying to push repository wise/spearmint-phantomjs: "Access denied: 6e0... is a private image" 

As I can see from docker history wise/spearmint-phantomjs this image “6e0…” corresponds to one of the intermidiate levels, that wasn’t changed from last push. So, I’m assuming it’s already presented on the server, but docker is trying to push it again. Needless to say, that I am logged in to docker before running docker push.
Also, if that’s relevant, I’m pushing the image with new tag. So the command is

docker push wise/spearmint-phantomjs:master

and master tag is currently not presented in the private registry.

Env info:

$ docker -v
Docker version 1.5.0, build a8a31ef

$ docker info
Containers: 1
Images: 368
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 370
Execution Driver: native-0.2
Kernel Version: 3.11.0-12-generic
Operating System: Ubuntu 13.10
CPUs: 4
Total Memory: 11.24 GiB
Name: minter
Username: wise
Registry: [https://index.docker.io/v1/]
WARNING: No swap limit support

Hi wise,

Could you upgrade to the latest release of Docker? You should be able update with:

curl -sSL https://get.docker.com/ubuntu/ | sudo sh

Thanks, that worked!

I am having this issue today through Circle CI.

Also am running into this issue through Circle CI

Experiencing this as well, with Docker 1.5.0. Seems like something broke in the Docker Hub services, since this worked flawlessly in my CI as well. (I am running docker pushes in an automated Jenkins build slave shell script.)

If I try to upgrade to 1.6.1, this is resolved.
However, 1.6.1 has other problems and I cannot upgrade to it yet.

So it looks like I’m stuck between a rock and a hard place.
Any solution with 1.5.0 for this issue?

Solution for the people running into this issue on circle. Circle CI made a build of docker 1.6 available which mitigates this problem.

You can use docker 1.6 by modifying your circle.yml file

    - docker
      - sudo service docker stop; sudo curl -L -o /usr/bin/docker 'http://s3-external-1.amazonaws.com/circle-downloads/docker-1.6.0-circleci'; sudo chmod 0755 /usr/bin/docker; sudo service docker start; true

This should fix the issue.


That worked, thank you @andymathys

Thanks @andymathys. That solved my problem however when the docker push command runs is now taking 9 minutes where as before it was approximately 1 minute. Is anyone else seeing something similar?

Again I have same problem :frowning:
When trying to push image i got 400 error - access denied

can anyone help? I opened a support message asking for help with docker debug log, docker info and docker version

I’m getting the same 400 error.
from the same image, if I pull an earlier version, and then try to push it, it works fine. When I try to push a new version on that image, I get the error.

And if it helps in any way, that’s the image id I get “Access denied” to:

“Access denied: d0ca8f539db88b28e73fb88282bd46d95aaeb2dce01a1d34c3113a9a2ad3dff7 is a private image”

> docker version

Client version: 1.5.0
Client API version: 1.17
Go version (client): go1.3.3
Git commit (client): a8a31ef-dirty
OS/Arch (client): linux/amd64
Server version: 1.5.0
Server API version: 1.17
Go version (server): go1.3.3
Git commit (server): a8a31ef-dirty

Same here, on an Amazon Linux AMI:

$ docker login --username=xxx --email=yyy --password=zzz && docker push private/repo
Login Succeeded
The push refers to a repository [private/repo] (len: 1)
Sending image list
FATA[0002] Error: Status 400 trying to push repository private/repo: “Access denied: 783baf821408575de778d770bf16e53e582ff81281e24161e69276b34e8fa748 is a private image”

That’s with “Docker version 1.5.0, build a8a31ef/1.5.0”

False alarm – turned out to be image cache state, as discussed here: