{"id":"14f539a9311504a8","repo":"docker/cli","slug":"cannot-push-a-digest-reference","errorCode":null,"errorMessage":"cannot push a digest reference","messagePattern":"cannot push a digest reference","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/docker-trust/internal/trust/trust_push.go","lineNumber":75,"sourceCode":"\t\terr := json.Unmarshal(*msg.Aux, &pushResult)\n\t\tif err == nil && pushResult.Tag != \"\" {\n\t\t\tif dgst, err := digest.Parse(pushResult.Digest); err == nil {\n\t\t\t\th, err := hex.DecodeString(dgst.Hex())\n\t\t\t\tif err != nil {\n\t\t\t\t\tnotaryTarget = nil\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tnotaryTarget.Name = pushResult.Tag\n\t\t\t\tnotaryTarget.Hashes = data.Hashes{string(dgst.Algorithm()): h}\n\t\t\t\tnotaryTarget.Length = int64(pushResult.Size)\n\t\t\t}\n\t\t}\n\t}\n\n\tvar tag string\n\tswitch x := ref.(type) {\n\tcase reference.Digested:\n\t\treturn errors.New(\"cannot push a digest reference\")\n\tcase reference.Tagged:\n\t\ttag = x.Tag()\n\tdefault:\n\t\t// We want trust signatures to always take an explicit tag,\n\t\t// otherwise it will act as an untrusted push.\n\t\tif err := jsonstream.Display(ctx, in, ioStreams.Out()); err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, _ = fmt.Fprintln(ioStreams.Err(), \"No tag specified, skipping trust metadata push\")\n\t\treturn nil\n\t}\n\n\tif err := jsonstream.Display(ctx, in, ioStreams.Out(), jsonstream.WithAuxCallback(handleTarget)); err != nil {\n\t\treturn err\n\t}\n\n\tif cnt > 1 {\n\t\treturn errors.New(\"internal error: only one call to handleTarget expected\")","sourceCodeStart":57,"sourceCodeEnd":93,"githubUrl":"https://github.com/docker/cli/blob/e9452d6e785f6e365712b9d71bd7517591773c86/cmd/docker-trust/internal/trust/trust_push.go#L57-L93","documentation":"Error \"cannot push a digest reference\" thrown in docker/cli.","triggerScenarios":"Thrown at cmd/docker-trust/internal/trust/trust_push.go:75 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"analyzedSha":"e9452d6e785f6e365712b9d71bd7517591773c86","analyzedAt":"2026-08-01T07:09:22.474Z","schemaVersion":2}