{"record":{"id":"c043799bde38aa9f","repo":"temporalio/temporal","slug":"failed-to-parse-link-header-q-key-not-found-s","errorCode":null,"errorMessage":"failed to parse link header: %q key not found: %s","messagePattern":"failed to parse link header: %q key not found: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"common/nexus/nexusrpc/api.go","lineNumber":221,"sourceCode":"\t\tif strings.HasPrefix(val, `\"`) != strings.HasSuffix(val, `\"`) {\n\t\t\treturn link, fmt.Errorf(\n\t\t\t\t\"failed to parse link header: parameter value missing double-quote: %s\",\n\t\t\t\tparam,\n\t\t\t)\n\t\t}\n\t\tif strings.HasPrefix(val, `\"`) {\n\t\t\tval = val[1 : len(val)-1]\n\t\t}\n\t\tif key == linkTypeKey {\n\t\t\tif err := validateLinkType(val); err != nil {\n\t\t\t\treturn link, fmt.Errorf(\"failed to parse link header: %w\", err)\n\t\t\t}\n\t\t\tlink.Type = val\n\t\t\ttypeKeyFound = true\n\t\t}\n\t}\n\tif !typeKeyFound {\n\t\treturn link, fmt.Errorf(\n\t\t\t\"failed to parse link header: %q key not found: %s\",\n\t\t\tlinkTypeKey,\n\t\t\tencodedLink,\n\t\t)\n\t}\n\n\treturn link, nil\n}\n\nfunc validateLinkURL(value *url.URL) error {\n\tif value == nil || value.String() == \"\" {\n\t\treturn errors.New(\"url is empty\")\n\t}\n\t_, err := url.ParseQuery(value.RawQuery)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"url query not percent-encoded: %s\", value)\n\t}\n\treturn nil","sourceCodeStart":203,"sourceCodeEnd":239,"githubUrl":"https://github.com/temporalio/temporal/blob/bde624efd13fbd3843654058db6d9c716166318b/common/nexus/nexusrpc/api.go#L203-L239","documentation":"Error \"failed to parse link header: %q key not found: %s\" thrown in temporalio/temporal.","triggerScenarios":"Thrown at common/nexus/nexusrpc/api.go:221 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"bde624efd13fbd3843654058db6d9c716166318b","analyzedAt":"2026-09-01T07:18:39.080Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}