probelabs/goreplay · error

need both header, regexp and rewrite target, colon-delimited

Error message

need both header, regexp and rewrite target, colon-delimited (ex. Header: regexp,target)

What it means

Flag-value validation error raised by HeaderRewriteMap.Set (used by --http-rewrite-header) when the argument lacks a colon separating the header name from its 'regexp,target' rewrite spec, so no headerRewrite rule can be constructed.

Source

Thrown at http_modifier_settings.go:246

// Handling of --http-rewrite-header option
type headerRewrite struct {
	header []byte
	src    *regexp.Regexp
	target []byte
}

// HeaderRewriteMap holds regexp and data to rewrite headers
type HeaderRewriteMap []headerRewrite

func (r *HeaderRewriteMap) String() string {
	return fmt.Sprint(*r)
}

// Set method to implement flags.Value
func (r *HeaderRewriteMap) Set(value string) error {
	headerArr := strings.SplitN(value, ":", 2)
	if len(headerArr) < 2 {
		return errors.New("need both header, regexp and rewrite target, colon-delimited (ex. Header: regexp,target)")
	}

	header := headerArr[0]
	valArr := strings.SplitN(strings.TrimSpace(headerArr[1]), ",", 2)

	if len(valArr) < 2 {
		return errors.New("need both header, regexp and rewrite target, colon-delimited (ex. Header: regexp,target)")
	}

	regexp, err := regexp.Compile(valArr[0])
	if err != nil {
		return err
	}
	*r = append(*r, headerRewrite{header: []byte(header), src: regexp, target: []byte(valArr[1])})
	return nil
}

// Handling of --http-allow-url option

View on GitHub (pinned to 251e45abd2)

Solutions

  1. Provide three parts: 'Header: regexp,target', e.g. --http-rewrite-header 'Cookie: (.*)token=[^;]*;?(.*)$,$1token=new$2'
  2. Quote the argument to protect colons, commas and dollar signs from the shell
  3. Split the spec mentally: header name before the colon, regexp,target after
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at http_modifier_settings.go:246 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of probelabs/goreplay@251e45abd2 (2026-09-02). Data as JSON: /api/errors/3a4a0c49816b218d. Report an issue: GitHub.