Skip to content
Latchkey

Docker "buildx imagetools create failed" in CI

docker buildx imagetools create assembles a manifest list from existing per-architecture tags already in a registry. It fails when one of the source tags does not exist, the target registry rejects the manifest list, or the credential cannot write the combined tag.

What this error means

A docker buildx imagetools create -t <tag> <src...> fails - a source manifest is not found, or the push of the assembled list is denied/rejected.

docker
ERROR: failed to create manifest list ghcr.io/myorg/api:1.4.2: ghcr.io/myorg/api:1.4.2-arm64: not found

Common causes

A source per-arch tag is missing

imagetools create references tags that must already exist in the registry; a missing one fails the list.

The credential cannot write the target tag

Writing the combined manifest list needs push permission on the target repository.

The registry rejects the manifest list

A registry without OCI/list support can refuse the assembled manifest.

How to fix it

Push all source tags before combining

  1. Build and push each per-arch tag first.
  2. Then create the manifest list from those tags.
Terminal
docker buildx imagetools create -t ghcr.io/myorg/api:1.4.2 \
  ghcr.io/myorg/api:1.4.2-amd64 \
  ghcr.io/myorg/api:1.4.2-arm64

Inspect the source tags and auth

  1. Confirm each source tag resolves and you are logged in with write rights.
Terminal
docker buildx imagetools inspect ghcr.io/myorg/api:1.4.2-amd64
docker login ghcr.io -u myorg --password-stdin <<< "$REGISTRY_TOKEN"

How to prevent it

  • Push every per-arch tag before assembling the list.
  • Ensure the target credential has write access.
  • Use a registry that supports manifest lists.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →