grafana/k6 · error

parsing %q, needs =

Error message

parsing %q, needs =

What it means

A line in the secrets file passed to the 'file' secret source (K6_SECRET_SOURCE=file:<path>) does not contain an '=' separator, so key and value cannot be split. The whole extension initialization aborts on the first malformed line.

Source

Thrown at internal/secretsource/file/file.go:32

	secretsource.RegisterExtension("file", func(params secretsource.Params) (secretsource.Source, error) {
		fss := &fileSecretSource{}
		err := fss.parseArg(params.ConfigArgument)
		if err != nil {
			return nil, err
		}

		f, err := params.FS.Open(fss.filename)
		if err != nil {
			return nil, err
		}
		scanner := bufio.NewScanner(f)

		fss.internal = make(map[string]string)
		for scanner.Scan() {
			line := scanner.Text()
			k, v, ok := strings.Cut(line, "=")
			if !ok {
				return nil, fmt.Errorf("parsing %q, needs =", line)
			}

			fss.internal[k] = v
		}
		return fss, nil
	})
}

func (fss *fileSecretSource) parseArg(config string) error {
	list := strings.Split(config, ",")
	if len(list) >= 1 {
		for _, kv := range list {
			k, v, ok := strings.Cut(kv, "=")
			if !ok {
				fss.filename = kv
				continue
			}
			switch k {

View on GitHub (pinned to 01ffac6f24)

Solutions

  1. Add '=' to every line, e.g. MY_SECRET=value
  2. Remove blank or malformed lines from the secrets file
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at internal/secretsource/file/file.go:32 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of grafana/k6@01ffac6f24 (2026-08-18). Data as JSON: /api/errors/06a149d5cd5fd394. Report an issue: GitHub.