{"record":{"id":"f519de0d42557a66","repo":"gastownhall/beads","slug":"proxied-server-root-path-must-be-an-absolute-pat","errorCode":null,"errorMessage":"--proxied-server-root-path must be an absolute path, got %q","messagePattern":"--proxied-server-root-path must be an absolute path, got %q","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/bd/init.go","lineNumber":474,"sourceCode":"\t\t\t}\n\t\t}\n\t\tif serverLogPath != \"\" {\n\t\t\tif !initProxiedServer {\n\t\t\t\treturn fmt.Errorf(\"--proxied-server-log-path requires --proxied-server\")\n\t\t\t}\n\t\t\tif !filepath.IsAbs(serverLogPath) {\n\t\t\t\treturn fmt.Errorf(\"--proxied-server-log-path must be an absolute path, got %q\", serverLogPath)\n\t\t\t}\n\t\t\tif err := validateProxiedServerLogPath(serverLogPath); err != nil {\n\t\t\t\treturn fmt.Errorf(\"--proxied-server-log-path %v\", err)\n\t\t\t}\n\t\t}\n\t\tif serverRootPath != \"\" {\n\t\t\tif !initProxiedServer {\n\t\t\t\treturn fmt.Errorf(\"--proxied-server-root-path requires --proxied-server\")\n\t\t\t}\n\t\t\tif !filepath.IsAbs(serverRootPath) {\n\t\t\t\treturn fmt.Errorf(\"--proxied-server-root-path must be an absolute path, got %q\", serverRootPath)\n\t\t\t}\n\t\t\tif err := validateProxiedServerRootPath(serverRootPath); err != nil {\n\t\t\t\treturn fmt.Errorf(\"--proxied-server-root-path %v\", err)\n\t\t\t}\n\t\t}\n\t\tif serverProxyPort != 0 {\n\t\t\tif !initProxiedServer {\n\t\t\t\treturn fmt.Errorf(\"--proxied-server-port requires --proxied-server\")\n\t\t\t}\n\t\t\tif serverProxyPort < 1 || serverProxyPort > 65535 {\n\t\t\t\treturn fmt.Errorf(\"--proxied-server-port must be between 1 and 65535, got %d\", serverProxyPort)\n\t\t\t}\n\t\t}\n\t\tif idleTimeoutSet {\n\t\t\tif !initProxiedServer {\n\t\t\t\treturn fmt.Errorf(\"--proxied-server-idle-timeout requires --proxied-server\")\n\t\t\t}\n\t\t\tif serverProxyIdleTimeout < 0 {","sourceCodeStart":456,"sourceCodeEnd":492,"githubUrl":"https://github.com/gastownhall/beads/blob/71377f276968b452ee607177637970a4ff888584/cmd/bd/init.go#L456-L492","documentation":"`bd init` requires `--proxied-server-root-path` to be an absolute filesystem path. Relative paths are rejected so the stored dolt sql-server root path remains unambiguous regardless of the working directory the daemon later runs from. `filepath.IsAbs` on the supplied value is the gate (cmd/bd/init.go:473-475).","triggerScenarios":"Running e.g. `bd init --proxied-server --proxied-server-root-path ./dolt-data` or `--proxied-server-root-path dolt-data` — any non-absolute value for serverRootPath.","commonSituations":"Typing a path relative to the current directory in scripts; templated config where an env var like $DATA_DIR is empty, leaving just the remainder of a relative path; Windows-style paths pasted into POSIX shells or vice versa.","solutions":["Pass an absolute path: replace a relative value with one starting at `/` (or a drive letter on Windows).","Expand variables/`~` in scripts before invoking: use `$(pwd)/dolt-data` or `abspath` in your tooling.","Omit the flag entirely to use the default proxied-server root location."],"exampleFix":"// before\nbd init --proxied-server --proxied-server-root-path ./dolt-data\n// after\nbd init --proxied-server --proxied-server-root-path /var/lib/beads/dolt-data","handlingStrategy":"validation","validationCode":"#!/usr/bin/env bash\nROOT_PATH=\"${ROOT_PATH:?}\"\ncase \"$ROOT_PATH\" in\n  /*) ;;                     # absolute, ok\n  *) ROOT_PATH=\"$(cd \"$(dirname \"$ROOT_PATH\")\" && pwd)/$(basename \"$ROOT_PATH\")\" ;;\nesac","typeGuard":"func isAbsRootPath(p string) bool { return filepath.IsAbs(p) }","tryCatchPattern":"if out, err := exec.Command(\"bd\", \"init\", args...).CombinedOutput(); err != nil {\n    if strings.Contains(string(out), \"must be an absolute path\") {\n        // convert to absolute path and retry\n    }\n}","preventionTips":["Always expand variables and ~ to absolute paths before passing to CLI tools.","Use $(pwd)/relative or a filepath.Abs equivalent in wrapper scripts.","Store canonical absolute data paths in deployment configuration rather than relative ones."],"tags":["cli","flag-validation","path","init"],"backgroundTag":"invalid-flag-value","analyzedSha":"71377f276968b452ee607177637970a4ff888584","analyzedAt":"2026-08-30T18:55:39.744Z","schemaVersion":2},"datasetVersion":"2026-08-30T23:17:21.991Z"}