GoogleContainerTools/jib · error · UnlistedPlatformInManifestListException
<image> is a manifest list, but the list does not contain an
Error message
<image> is a manifest list, but the list does not contain an image for architecture=%s, os=%s. If your intention was to specify a platform for your image, see https://github.com/GoogleContainerTools/jib/blob/master/docs/faq.md#how-do-i-specify-a-platform-in-the-manifest-list-or-oci-index-of-a-base-image
What it means
The base image reference resolved to a manifest list (multi-arch index), but none of the entries match the architecture/os Jib was asked to build for. Jib dispatches a log error and throws UnlistedPlatformInManifestListException because it cannot select a platform-specific image from the list.
Source
Thrown at jib-core/src/main/java/com/google/cloud/tools/jib/builder/steps/PullBaseImageStep.java:378
* digest of the first manifest it finds.
*/
@VisibleForTesting
String lookUpPlatformSpecificImageManifest(
ManifestListTemplate manifestListTemplate, Platform platform)
throws UnlistedPlatformInManifestListException {
EventHandlers eventHandlers = buildContext.getEventHandlers();
List<String> digests =
manifestListTemplate.getDigestsForPlatform(platform.getArchitecture(), platform.getOs());
if (digests.isEmpty()) {
String errorTemplate =
buildContext.getBaseImageConfiguration().getImage()
+ " is a manifest list, but the list does not contain an image for architecture=%s, "
+ "os=%s. If your intention was to specify a platform for your image, see "
+ "https://github.com/GoogleContainerTools/jib/blob/master/docs/faq.md#how-do-i-specify-a-platform-in-the-manifest-list-or-oci-index-of-a-base-image";
String error = String.format(errorTemplate, platform.getArchitecture(), platform.getOs());
eventHandlers.dispatch(LogEvent.error(error));
throw new UnlistedPlatformInManifestListException(error);
}
// TODO: perhaps we should return multiple digests matching the platform.
return digests.get(0);
}
/**
* Pulls a container configuration JSON specified in the given manifest.
*
* @param manifestAndDigest a manifest JSON and its digest
* @param registryClient to communicate with remote registry
* @param progressDispatcherFactory the {@link ProgressEventDispatcher.Factory} for emitting
* {@link ProgressEvent}s
* @return pulled {@link ContainerConfigurationTemplate}
* @throws IOException when an I/O exception occurs during the pulling
* @throws LayerPropertyNotFoundException if adding image layers fails
*/
private ContainerConfigurationTemplate pullContainerConfigJson(
ManifestAndDigest<?> manifestAndDigest,View on GitHub (pinned to fb949e2676)
Solutions
- Verify the manifest list actually contains your architecture/os: docker manifest inspect <image> or crane manifest
- Fix the architecture/os values in the jib platform configuration (check exact strings like 'amd64', 'arm64', 'linux')
- Choose a different base image that publishes a variant for your target platform
- See the linked Jib FAQ on specifying a platform in a manifest list/OCI index
Example fix
// before <platform><architecture>arm64</architecture><os>windows</os></platform> // not in list // after <platform><architecture>amd64</architecture><os>linux</os></platform> // variant exists in list
Defensive patterns
Strategy: validation
Validate before calling
docker manifest inspect $BASE_IMAGE | jq -e --arg arch "$ARCH" --arg os "$OS" '.manifests[] | select(.platform.architecture==$arch and .platform.os==$os)'
Prevention
- Verify list coverage with docker manifest inspect
- Use exact OCI arch/os strings
When it happens
Trigger: lookUpPlatformSpecificImageManifest finds no digest in the manifest list matching platform.getArchitecture()/getOs(); e.g. requesting platform windows/arm64 against a manifest list that only has linux/amd64 and linux/arm64 entries.
Common situations: Base image does not publish a variant for your requested architecture (e.g. arm32 or windows); misspelled os/arch values in jib platform config; building for an OS like 'windows' against a Linux-only base image; older/slim image tags with limited platform coverage.
Understand the failure class
Background: "unsupported platform" / "not supported on this platform" errors: what they mean and how to fix them — this error's family across 47 libraries.
Related errors
- from.platforms contains a platform configuration that is mis
- <from><platforms> contains a platform configuration that is
- Manifest list missing
- Platform must be of form os/architecture.
- Platform must be of form os/architecture.
AI-assisted analysis of GoogleContainerTools/jib@fb949e2676 (2026-09-06).
Data as JSON: /api/errors/996a1fec4dcbf01b.
Report an issue: GitHub.