{"record":{"id":"e12fad644d7c7527","repo":"dagger/dagger","slug":"invalid-s-registry-protocol-v","errorCode":null,"errorMessage":"invalid %s registry protocol %v","messagePattern":"invalid (.+?) registry protocol (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"core/lockfile_update.go","lineNumber":229,"sourceCode":"\tif err != nil {\n\t\treturn parsed, fmt.Errorf(\"invalid %s ref %q: %w\", operation, ref, err)\n\t}\n\tif latest && !reference.IsNameOnly(refName) {\n\t\treturn parsed, fmt.Errorf(\"invalid %s tagged ref %q\", operation, ref)\n\t}\n\tif !latest {\n\t\tif _, ok := refName.(reference.NamedTagged); !ok {\n\t\t\treturn parsed, fmt.Errorf(\"invalid %s untagged ref %q\", operation, ref)\n\t\t}\n\t}\n\tparsed.ref = ref\n\n\tfor name, value := range options {\n\t\tswitch name {\n\t\tcase \"protocol\":\n\t\t\tprotocol, ok := value.(string)\n\t\t\tif !ok {\n\t\t\t\treturn parsed, fmt.Errorf(\"invalid %s registry protocol %v\", operation, value)\n\t\t\t}\n\t\t\tswitch serverresolver.RegistryProtocol(protocol) {\n\t\t\tcase serverresolver.RegistryProtocolHTTP, serverresolver.RegistryProtocolHTTPS:\n\t\t\t\tparsed.registryTransport.Protocol = serverresolver.RegistryProtocol(protocol)\n\t\t\tdefault:\n\t\t\t\treturn parsed, fmt.Errorf(\"invalid %s registry protocol %q\", operation, protocol)\n\t\t\t}\n\t\tcase \"insecureSkipTLSVerify\":\n\t\t\tinsecure, ok := value.(bool)\n\t\t\tif !ok {\n\t\t\t\treturn parsed, fmt.Errorf(\"invalid %s insecureSkipTLSVerify %v\", operation, value)\n\t\t\t}\n\t\t\tparsed.registryTransport.InsecureSkipTLSVerify = insecure\n\t\tdefault:\n\t\t\treturn parsed, unsupportedLockOptionError(operation, name)\n\t\t}\n\t}\n\tif parsed.registryTransport.InsecureSkipTLSVerify {","sourceCodeStart":211,"sourceCodeEnd":247,"githubUrl":"https://github.com/dagger/dagger/blob/82ba2681dbe30d3547a1dc50ea495900ab5b6047/core/lockfile_update.go#L211-L247","documentation":"parseOCILockInputs: the 'protocol' lock option's value is not a string, so it cannot be interpreted as a registry protocol. The options map carries a wrongly-typed value.","triggerScenarios":"Thrown at core/lockfile_update.go:229 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set the protocol option to the string \"http\" or \"https\"","Regenerate the lock entry so options are well-typed","Validate option types when the lock is written"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"82ba2681dbe30d3547a1dc50ea495900ab5b6047","analyzedAt":"2026-09-05T07:21:37.930Z","contentChangedAt":"2026-09-05T07:21:37.930Z","schemaVersion":2},"datasetVersion":"2026-09-12T12:17:11.808Z"}