gastownhall/beads · error

prime.max-memory-chars must be a non-negative integer (0 = u

Error message

prime.max-memory-chars must be a non-negative integer (0 = unlimited), got %q

What it means

When setting prime.max-memory-chars, validateYamlConfigValue parses the value with strconv.Atoi; a non-integer string fails and returns this error. The value caps primed memory content in characters, with 0 meaning unlimited.

Source

Thrown at internal/config/yaml_config.go:914

			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

  1. Pass a plain non-negative integer, e.g. `bd config set prime.max-memory-chars 20000`
  2. Use 0 for unlimited
  3. Convert unit suffixes to full integers before setting

Example fix

// before
SetYamlConfig("prime.max-memory-chars", "20k")
// after
SetYamlConfig("prime.max-memory-chars", "20000")
Defensive patterns

Strategy: validation

Validate before calling

n, err := strconv.Atoi(strings.TrimSpace(value))
if err != nil || n < 0 {
    return fmt.Errorf("prime.max-memory-chars must be a non-negative integer, got %q", value)
}

Try / catch

if err := bd.SetYamlConfig("prime.max-memory-chars", v); err != nil {
    log.Printf("rejected: %v", err)
    return err
}

Prevention

When it happens

Trigger: `bd config set prime.max-memory-chars "10k"` or any non-integer string via SetYamlConfig/SetYamlConfigInDir/SetUserYamlConfig (Atoi error branch at yaml_config.go:914).

Common situations: Values with suffixes like "20000k", decimals, or quoted/whitespace-polluted shell values.

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


AI-assisted analysis of gastownhall/beads@71377f2769 (2026-08-30). Data as JSON: /api/errors/c5a17b99b4b27f23. Report an issue: GitHub.