go-delve/delve · error
%q is not a configuration parameter
Error message
%q is not a configuration parameter
What it means
`config -set <name> <value>` looks up the setting by name among the fields of the configuration struct (with yaml-tag-based matching). If the field is found but not addressable — or effectively the name does not match any settable configuration parameter — this error is returned.
Source
Thrown at pkg/terminal/config.go:65
func configureSet(t *Term, args string) error {
v := config.Split2PartsBySpace(args)
cfgname := v[0]
var rest string
if len(v) == 2 {
rest = v[1]
}
switch cfgname {
case "alias":
return configureSetAlias(t, rest)
case "debug-info-directories":
return configureSetDebugInfoDirectories(t, rest)
}
field := config.ConfigureFindFieldByName(t.conf, cfgname, "yaml")
if !field.CanAddr() {
return fmt.Errorf("%q is not a configuration parameter", cfgname)
}
if field.Kind() == reflect.Slice && field.Type().Elem().Name() == "SubstitutePathRule" {
return configureSetSubstitutePath(t, rest)
}
return config.ConfigureSetSimple(rest, cfgname, field)
}
func configureSetSubstitutePath(t *Term, rest string) error {
if strings.TrimSpace(rest) == "-clear" {
t.conf.SubstitutePath = t.conf.SubstitutePath[:0]
return nil
}
if strings.TrimSpace(rest) == "-guess" {
rules, err := t.client.GuessSubstitutePath()
if err != nil {
return errView on GitHub (pinned to a23773e6c3)
Solutions
- Run `config -list` to see valid parameter names and copy exactly
- Use hyphenated lowercase names (e.g. `substitute-path`, `max-retry-connection`)
- Check the Delve version — parameter names changed across releases (see Documentation/cli/locspec or config docs)
- Set debug info dirs via `config -set debug-info-directories ...` which has a dedicated handler
Example fix
// before config -set maxRetryConnection 5 // after config -set max-retry-connection 5
Defensive patterns
Strategy: try-catch
Try / catch
if err := dlv.ConfigSet(name, value); err != nil {
if strings.Contains(err.Error(), "is not a configuration parameter") {
names, _ := dlv.ConfigList()
fmt.Fprintf(os.Stderr, "unknown config %q; valid: %v\n", name, names)
}
} Prevention
- Wrap config-set calls in error handling that falls back to `config -list`
When it happens
Trigger: Running `config -set max-retry-connection 5` or any name that doesn't correspond to a known, settable config field (e.g. misspelled `substitute-path`, `max-retry-connection`, `source-list-line-format`, `debug-info-directories`).
Common situations: Typo in the parameter name; using Go-style camelCase instead of the yaml/hyphenated names; trying to set read-only or non-configuration fields; old parameter names removed in newer Delve versions.
Related errors
- unknown config parameter
- not documented
- command not available
- you must specify a thread
- too many arguments to goroutine
AI-assisted analysis of go-delve/delve@a23773e6c3 (2026-08-31).
Data as JSON: /api/errors/dcbfe0ff5674b0bf.
Report an issue: GitHub.