{"record":{"id":"225ce774dee8bad5","repo":"gastownhall/beads","slug":"proxied-server-config-path-must-be-an-absolute-p","errorCode":null,"errorMessage":"--proxied-server-config-path must be an absolute path, got %q","messagePattern":"--proxied-server-config-path must be an absolute path, got %q","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/bd/init.go","lineNumber":452,"sourceCode":"\n\t\tif initProxiedServer && initServerMode {\n\t\t\treturn fmt.Errorf(\"--server and --proxied-server are mutually exclusive\")\n\t\t}\n\t\tif initProxiedServer {\n\t\t\tif sharedServer || externalServer ||\n\t\t\t\tserverHost != \"\" || serverPort != 0 || serverSocket != \"\" || serverUser != \"\" || cmd.Flags().Changed(\"server-tls\") {\n\t\t\t\treturn fmt.Errorf(\"--proxied-server cannot be combined with --shared-server, --external, or any --server-* flag\")\n\t\t\t}\n\t\t}\n\t\tif initTeamServer && !initProxiedServer {\n\t\t\treturn fmt.Errorf(\"--team-server requires --proxied-server\")\n\t\t}\n\t\tif serverConfigPath != \"\" {\n\t\t\tif !initProxiedServer {\n\t\t\t\treturn fmt.Errorf(\"--proxied-server-config-path requires --proxied-server\")\n\t\t\t}\n\t\t\tif !filepath.IsAbs(serverConfigPath) {\n\t\t\t\treturn fmt.Errorf(\"--proxied-server-config-path must be an absolute path, got %q\", serverConfigPath)\n\t\t\t}\n\t\t\tif err := validateProxiedServerConfig(serverConfigPath); err != nil {\n\t\t\t\treturn fmt.Errorf(\"--proxied-server-config-path %v\", err)\n\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 {","sourceCodeStart":434,"sourceCodeEnd":470,"githubUrl":"https://github.com/gastownhall/beads/blob/71377f276968b452ee607177637970a4ff888584/cmd/bd/init.go#L434-L470","documentation":"When provided, --proxied-server-config-path must be an absolute path so the generated server config resolves unambiguously regardless of working directory; relative paths are rejected with %q of the given value.","triggerScenarios":"Running `bd init --proxied-server --proxied-server-config-path ./proxied.json` (or any path not starting with /).","commonSituations":"Using ~ or relative paths in shell scripts; composing the path from a variable that is not absolute.","solutions":["Convert the path to absolute (realpath / absolute $PWD join) before passing it","Replace a leading ~ with $HOME — tilde does not make a path absolute for filepath.IsAbs"],"exampleFix":"// before\nbd init --proxied-server --proxied-server-config-path ./proxied.json\n// after\nbd init --proxied-server --proxied-server-config-path \"$(pwd)/proxied.json\"","handlingStrategy":"validation","validationCode":"CONFIG=/etc/bd/proxied.json\ncase \"$CONFIG\" in /*) ;; *) echo \"must be absolute: $CONFIG\"; exit 1;; esac","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always build the config path from an absolute base ($(pwd) or /etc/...)","Do not rely on ~ expansion inside variables","Run realpath on user-supplied paths before passing them"],"tags":["cli","path-validation","init","proxied-server"],"backgroundTag":"invalid-path","analyzedSha":"71377f276968b452ee607177637970a4ff888584","analyzedAt":"2026-08-30T18:55:39.744Z","schemaVersion":2},"datasetVersion":"2026-08-30T23:17:21.991Z"}