{"record":{"id":"da9c62b93c4beac0","repo":"gastownhall/beads","slug":"dolt-mode-must-be-server-or-embedded-got-q","errorCode":null,"errorMessage":"dolt.mode must be \"server\" or \"embedded\", got %q","messagePattern":"dolt\\.mode must be \"server\" or \"embedded\", got %q","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/config/yaml_config.go","lineNumber":901,"sourceCode":"\t\t\treturn fmt.Errorf(\"hierarchy.max-depth must be a positive integer, got %q\", value)\n\t\t}\n\t\tif depth < 1 {\n\t\t\treturn fmt.Errorf(\"hierarchy.max-depth must be at least 1, got %d\", depth)\n\t\t}\n\tcase \"dolt.shared-server\":\n\t\tlower := strings.ToLower(value)\n\t\tif lower != \"true\" && lower != \"false\" {\n\t\t\treturn fmt.Errorf(\"dolt.shared-server must be \\\"true\\\" or \\\"false\\\", got %q\", value)\n\t\t}\n\tcase \"dolt.debug\":\n\t\tlower := strings.ToLower(value)\n\t\tif lower != \"true\" && lower != \"false\" {\n\t\t\treturn fmt.Errorf(\"dolt.debug must be \\\"true\\\" or \\\"false\\\", got %q\", value)\n\t\t}\n\tcase \"dolt.mode\":\n\t\tlower := strings.ToLower(value)\n\t\tif lower != \"server\" && lower != \"embedded\" {\n\t\t\treturn fmt.Errorf(\"dolt.mode must be \\\"server\\\" or \\\"embedded\\\", got %q\", value)\n\t\t}\n\tcase \"prime.max-memories\":\n\t\tn, err := strconv.Atoi(value)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"prime.max-memories must be a non-negative integer (0 = unlimited), got %q\", value)\n\t\t}\n\t\tif n < 0 {\n\t\t\treturn fmt.Errorf(\"prime.max-memories must be a non-negative integer (0 = unlimited), got %q\", value)\n\t\t}\n\tcase \"prime.max-memory-chars\":\n\t\tn, err := strconv.Atoi(value)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"prime.max-memory-chars must be a non-negative integer (0 = unlimited), got %q\", value)\n\t\t}\n\t\tif n < 0 {\n\t\t\treturn fmt.Errorf(\"prime.max-memory-chars must be a non-negative integer (0 = unlimited), got %q\", value)\n\t\t}\n\t}","sourceCodeStart":883,"sourceCodeEnd":919,"githubUrl":"https://github.com/gastownhall/beads/blob/71377f276968b452ee607177637970a4ff888584/internal/config/yaml_config.go#L883-L919","documentation":"validateYamlConfigValue validates a single key/value pair before bd writes it to a YAML config file. For the dolt.mode key the value must be exactly \"server\" or \"embedded\" (case-insensitive); any other string is rejected with this error so bd never persists an invalid Dolt runtime mode.","triggerScenarios":"Calling SetYamlConfig, SetYamlConfigInDir, or SetUserYamlConfig with key \"dolt.mode\" and a value other than server/embedded (e.g. `bd config set dolt.mode local`), or test code invoking validateYamlConfigValue directly.","commonSituations":"Typo in the mode name, abbreviations like \"local\" or \"standalone\", leftover value from a doc or old version, or whitespace-bearing shell input.","solutions":["Set dolt.mode to exactly \"server\" or \"embedded\", e.g. `bd config set dolt.mode embedded`","Check the current value with `bd config get dolt.mode` and edit the YAML config file manually if a bad value was persisted","If value came from a script or env, trim whitespace and lowercase it before passing"],"exampleFix":"// before\nSetYamlConfig(\"dolt.mode\", \"local\")\n// after\nSetYamlConfig(\"dolt.mode\", \"embedded\")","handlingStrategy":"validation","validationCode":"v := strings.ToLower(strings.TrimSpace(value))\nif v != \"server\" && v != \"embedded\" {\n    return fmt.Errorf(\"dolt.mode must be server or embedded, got %q\", value)\n}","typeGuard":null,"tryCatchPattern":"if err := bd.SetYamlConfig(\"dolt.mode\", v); err != nil {\n    var verr *bd.ValidationError\n    if errors.As(err, &verr) { /* show allowed values: server, embedded */ }\n}","preventionTips":["Only assign dolt.mode from the fixed set {server, embedded}","Normalize shell input with tr '[:upper:]' '[:lower:]' before setting","Add config values to a whitelist in automation scripts rather than free-text"],"tags":["config","validation"],"backgroundTag":"invalid-config-value","analyzedSha":"71377f276968b452ee607177637970a4ff888584","analyzedAt":"2026-08-30T18:55:39.744Z","schemaVersion":2},"datasetVersion":"2026-08-30T23:17:21.991Z"}