temporalio/temporal · error

failed to parse link header: %q key not found: %s

Error message

failed to parse link header: %q key not found: %s

What it means

Error "failed to parse link header: %q key not found: %s" thrown in temporalio/temporal.

Source

Thrown at common/nexus/nexusrpc/api.go:221

		if strings.HasPrefix(val, `"`) != strings.HasSuffix(val, `"`) {
			return link, fmt.Errorf(
				"failed to parse link header: parameter value missing double-quote: %s",
				param,
			)
		}
		if strings.HasPrefix(val, `"`) {
			val = val[1 : len(val)-1]
		}
		if key == linkTypeKey {
			if err := validateLinkType(val); err != nil {
				return link, fmt.Errorf("failed to parse link header: %w", err)
			}
			link.Type = val
			typeKeyFound = true
		}
	}
	if !typeKeyFound {
		return link, fmt.Errorf(
			"failed to parse link header: %q key not found: %s",
			linkTypeKey,
			encodedLink,
		)
	}

	return link, nil
}

func validateLinkURL(value *url.URL) error {
	if value == nil || value.String() == "" {
		return errors.New("url is empty")
	}
	_, err := url.ParseQuery(value.RawQuery)
	if err != nil {
		return fmt.Errorf("url query not percent-encoded: %s", value)
	}
	return nil

View on GitHub (pinned to bde624efd1)

When it happens

Trigger: Thrown at common/nexus/nexusrpc/api.go:221 when the library encounters an invalid state.

Common situations: See trigger scenarios.

Understand the failure class


AI-assisted analysis of temporalio/temporal@bde624efd1 (2026-09-01). Data as JSON: /api/errors/c043799bde38aa9f. Report an issue: GitHub.