{"record":{"id":"996a1fec4dcbf01b","repo":"GoogleContainerTools/jib","slug":"image-is-a-manifest-list-but-the-list-does-not","errorCode":null,"errorMessage":"<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","messagePattern":"<image> is a manifest list, but the list does not contain an image for architecture=(.+?), os=(.+?)\\. 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","errorType":"exception","errorClass":"UnlistedPlatformInManifestListException","httpStatus":null,"severity":"error","filePath":"jib-core/src/main/java/com/google/cloud/tools/jib/builder/steps/PullBaseImageStep.java","lineNumber":378,"sourceCode":"   * digest of the first manifest it finds.\n   */\n  @VisibleForTesting\n  String lookUpPlatformSpecificImageManifest(\n      ManifestListTemplate manifestListTemplate, Platform platform)\n      throws UnlistedPlatformInManifestListException {\n    EventHandlers eventHandlers = buildContext.getEventHandlers();\n\n    List<String> digests =\n        manifestListTemplate.getDigestsForPlatform(platform.getArchitecture(), platform.getOs());\n    if (digests.isEmpty()) {\n      String errorTemplate =\n          buildContext.getBaseImageConfiguration().getImage()\n              + \" is a manifest list, but the list does not contain an image for architecture=%s, \"\n              + \"os=%s. If your intention was to specify a platform for your image, see \"\n              + \"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\";\n      String error = String.format(errorTemplate, platform.getArchitecture(), platform.getOs());\n      eventHandlers.dispatch(LogEvent.error(error));\n      throw new UnlistedPlatformInManifestListException(error);\n    }\n    // TODO: perhaps we should return multiple digests matching the platform.\n    return digests.get(0);\n  }\n\n  /**\n   * Pulls a container configuration JSON specified in the given manifest.\n   *\n   * @param manifestAndDigest a manifest JSON and its digest\n   * @param registryClient to communicate with remote registry\n   * @param progressDispatcherFactory the {@link ProgressEventDispatcher.Factory} for emitting\n   *     {@link ProgressEvent}s\n   * @return pulled {@link ContainerConfigurationTemplate}\n   * @throws IOException when an I/O exception occurs during the pulling\n   * @throws LayerPropertyNotFoundException if adding image layers fails\n   */\n  private ContainerConfigurationTemplate pullContainerConfigJson(\n      ManifestAndDigest<?> manifestAndDigest,","sourceCodeStart":360,"sourceCodeEnd":396,"githubUrl":"https://github.com/GoogleContainerTools/jib/blob/fb949e2676afbbd7dd7a1ef61e20251931325654/jib-core/src/main/java/com/google/cloud/tools/jib/builder/steps/PullBaseImageStep.java#L360-L396","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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"],"exampleFix":"// before\n<platform><architecture>arm64</architecture><os>windows</os></platform>  // not in list\n// after\n<platform><architecture>amd64</architecture><os>linux</os></platform>    // variant exists in list","handlingStrategy":"validation","validationCode":"docker manifest inspect $BASE_IMAGE | jq -e --arg arch \"$ARCH\" --arg os \"$OS\" '.manifests[] | select(.platform.architecture==$arch and .platform.os==$os)'","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Verify list coverage with docker manifest inspect","Use exact OCI arch/os strings"],"tags":["manifest-list","platform","multi-arch","jib"],"backgroundTag":"unsupported-platform","analyzedSha":"fb949e2676afbbd7dd7a1ef61e20251931325654","analyzedAt":"2026-09-06T14:04:09.491Z","contentChangedAt":"2026-09-06T14:04:09.491Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}