{"record":{"id":"5ba3a12f911d6e14","repo":"docker/cli","slug":"unsupported-manifest-type-t","errorCode":null,"errorMessage":"unsupported manifest type: %T","messagePattern":"unsupported manifest type: %T","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/registryclient/fetcher.go","lineNumber":183,"sourceCode":"\t\t}\n\t\tmanifest, err := manSvc.Get(ctx, manifestDescriptor.Digest)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tmanifestRef, err := reference.WithDigest(ref, manifestDescriptor.Digest)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tvar imageManifest types.ImageManifest\n\t\tswitch v := manifest.(type) {\n\t\tcase *schema2.DeserializedManifest:\n\t\t\timageManifest, err = pullManifestSchemaV2(ctx, manifestRef, repo, *v)\n\t\tcase *ocischema.DeserializedManifest:\n\t\t\timageManifest, err = pullManifestOCISchema(ctx, manifestRef, repo, *v)\n\t\tdefault:\n\t\t\terr = fmt.Errorf(\"unsupported manifest type: %T\", manifest)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\t// Replace platform from config\n\t\tp := manifestDescriptor.Platform\n\t\timageManifest.Descriptor.Platform = types.OCIPlatform(&p)\n\n\t\tinfos = append(infos, imageManifest)\n\t}\n\treturn infos, nil\n}\n\nfunc continueOnError(err error) bool {\n\tswitch v := err.(type) {\n\tcase errcode.Errors:\n\t\tif len(v) == 0 {","sourceCodeStart":165,"sourceCodeEnd":201,"githubUrl":"https://github.com/docker/cli/blob/4f84911bfe8811e9b028e4b1fee8e7510be79387/internal/registryclient/fetcher.go#L165-L201","documentation":"In pullManifestList each child entry of a manifest list is expected to be a schema2 or OCI manifest. If a child is any other type (legacy schema 1, a nested list, or an unknown media type), this fires and embeds the Go type name via %T so you can see exactly what was unexpected.","triggerScenarios":"A manifest list whose child descriptors resolve to a type other than schema2 / OCI DeserializedManifest — e.g. an old multi-arch image containing schema-1 children, or a malformed/nested index.","commonSituations":"Legacy multi-arch images built with deprecated tooling; registry/custom manifest formats; version skew where a newer registry emits a manifest subtype this CLI does not handle.","solutions":["Rebuild the manifest list with current schema2/OCI children (`docker manifest create`).","Inspect the list with `docker manifest inspect <ref>` to see each child's media type.","Upgrade the CLI/registry to matching current versions.","If a specific platform child is fine, pull that child digest directly with GetManifest."],"exampleFix":"# rebuild the manifest list with current images\ndocker manifest create myreg/img:multi myreg/img:amd64 myreg/img:arm64\ndocker manifest push myreg/img:multi","handlingStrategy":"validation","validationCode":"// Inspect each child's media type before iterating a manifest list.\nvar okChild = map[string]bool{\n    \"application/vnd.docker.distribution.manifest.v2+json\": true,\n    \"application/vnd.oci.image.manifest.v1+json\":           true,\n}\n// read child descriptors and reject lists containing unsupported media types up front.","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Build manifest lists with current schema2/OCI children only.","Inspect lists with docker manifest inspect before relying on them.","Keep registry and CLI versions aligned."],"tags":["docker","registry","manifest","multi-arch","compatibility"],"backgroundTag":null,"analyzedSha":"4f84911bfe8811e9b028e4b1fee8e7510be79387","analyzedAt":"2026-08-07T12:15:29.814Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}