Skip to content
Latchkey

Docker "manifest create" - "no such manifest" / "is a manifest list" in CI

Assembling a multi-arch tag with docker manifest create failed because one of the per-arch images is missing from the registry, is itself a manifest list, or the experimental CLI feature is off.

What this error means

A docker manifest create/push fails with no such manifest: <ref>, is a manifest list, not a manifest, or a message that docker manifest requires experimental features. The multi-arch tag is never published.

docker manifest output
no such manifest: myorg/api:1.4.2-arm64
# or feeding a manifest list as a child:
ERROR: myorg/api:1.4.2-amd64 is a manifest list, not a manifest

Common causes

A per-arch image was never pushed

manifest create references each architecture’s image by tag. If the amd64/arm64 build did not push its tag, that child manifest does not exist.

Feeding a manifest list as a child

Each child must be a single-arch image manifest. Passing another manifest list (a multi-arch tag) as a child is rejected.

Experimental CLI features disabled

The classic docker manifest command requires experimental mode in the Docker CLI config; without it the command is unavailable.

How to fix it

Prefer buildx for multi-arch manifests

A single buildx build --platform ... --push produces the manifest list for you - no manual manifest create.

Terminal
docker buildx build --platform linux/amd64,linux/arm64 \
  --push -t myorg/api:1.4.2 .

If using manifest create, push each arch first

Build and push every single-arch tag, then assemble and push the list.

Terminal
export DOCKER_CLI_EXPERIMENTAL=enabled
docker manifest create myorg/api:1.4.2 \
  myorg/api:1.4.2-amd64 myorg/api:1.4.2-arm64
docker manifest push myorg/api:1.4.2

How to prevent it

  • Build multi-arch tags with buildx --push instead of manual manifest assembly.
  • Push every per-arch child tag before manifest create.
  • Enable experimental CLI features if you rely on docker manifest.

Related guides

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