gastownhall/beads · error
prime.max-memories must be a non-negative integer (0 = unlim
Error message
prime.max-memories must be a non-negative integer (0 = unlimited), got %q
What it means
When setting prime.max-memories, validateYamlConfigValue parses the value with strconv.Atoi; a non-integer string fails parsing and returns this error. The value must be a non-negative integer where 0 means unlimited memories during bd prime.
Source
Thrown at internal/config/yaml_config.go:906
case "dolt.shared-server":
lower := strings.ToLower(value)
if lower != "true" && lower != "false" {
return fmt.Errorf("dolt.shared-server must be \"true\" or \"false\", got %q", value)
}
case "dolt.debug":
lower := strings.ToLower(value)
if lower != "true" && lower != "false" {
return fmt.Errorf("dolt.debug must be \"true\" or \"false\", got %q", value)
}
case "dolt.mode":
lower := strings.ToLower(value)
if lower != "server" && lower != "embedded" {
return fmt.Errorf("dolt.mode must be \"server\" or \"embedded\", got %q", value)
}
case "prime.max-memories":
n, err := strconv.Atoi(value)
if err != nil {
return fmt.Errorf("prime.max-memories must be a non-negative integer (0 = unlimited), got %q", value)
}
if n < 0 {
return fmt.Errorf("prime.max-memories must be a non-negative integer (0 = unlimited), got %q", value)
}
case "prime.max-memory-chars":
n, err := strconv.Atoi(value)
if err != nil {
return fmt.Errorf("prime.max-memory-chars must be a non-negative integer (0 = unlimited), got %q", value)
}
if n < 0 {
return fmt.Errorf("prime.max-memory-chars must be a non-negative integer (0 = unlimited), got %q", value)
}
}
return nil
}
View on GitHub (pinned to 71377f2769)
Solutions
- Pass a plain non-negative integer, e.g. `bd config set prime.max-memories 1000`
- Use 0 to explicitly mean unlimited instead of a word like "unlimited"
- Strip units/whitespace from scripted values before setting
Example fix
// before
SetYamlConfig("prime.max-memories", "unlimited")
// after
SetYamlConfig("prime.max-memories", "0") Defensive patterns
Strategy: validation
Validate before calling
n, err := strconv.Atoi(strings.TrimSpace(value))
if err != nil || n < 0 {
return fmt.Errorf("prime.max-memories must be a non-negative integer, got %q", value)
} Try / catch
if err := bd.SetYamlConfig("prime.max-memories", v); err != nil {
log.Fatalf("invalid prime.max-memories %q: %v", v, err)
} Prevention
- Never pass words like "unlimited" — use 0
- Strip units and whitespace from computed values
- Sanity-check limits in CI before writing config
When it happens
Trigger: `bd config set prime.max-memories abc` or `bd config set prime.max-memories 1.5` via SetYamlConfig/SetYamlConfigInDir/SetUserYamlConfig (Atoi error branch at yaml_config.go:906).
Common situations: Passing "unlimited", "50M", a float, or a value with units/whitespace instead of a plain integer.
Understand the failure class
Background: "Invalid value" and "allowed values are" config errors: what your library rejected and how to fix it — this error's family across 41 libraries.
Related errors
- prime.max-memory-chars must be a non-negative integer (0 = u
- server: NewDoltServer: doltBinExec is required
- server: NewDoltServer: rootDir is required
- server: NewDoltServer: configPath is required
- ErrPrefixMismatch
AI-assisted analysis of gastownhall/beads@71377f2769 (2026-08-30).
Data as JSON: /api/errors/cb62f4b7a4ad0931.
Report an issue: GitHub.