{"record":{"id":"0373870041858603","repo":"gastownhall/beads","slug":"server-and-proxied-server-are-mutually-exclusi","errorCode":null,"errorMessage":"--server and --proxied-server are mutually exclusive","messagePattern":"--server and --proxied-server are mutually exclusive","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/bd/init.go","lineNumber":436,"sourceCode":"\t\texternalTLSCACertPath, _ := cmd.Flags().GetString(\"proxied-server-external-tls-ca-cert-path\")\n\t\texternalTLSCertPath, _ := cmd.Flags().GetString(\"proxied-server-external-tls-cert-path\")\n\t\texternalTLSKeyPath, _ := cmd.Flags().GetString(\"proxied-server-external-tls-key-path\")\n\t\texternalTLSServerName, _ := cmd.Flags().GetString(\"proxied-server-external-tls-server-name\")\n\t\texternalTLSSkipVerify, _ := cmd.Flags().GetBool(\"proxied-server-external-tls-skip-verify\")\n\t\texternalKeepAlive, _ := cmd.Flags().GetDuration(\"proxied-server-external-keep-alive\")\n\t\tif os.Getenv(\"BEADS_DOLT_PROXIED_SERVER\") == \"1\" {\n\t\t\tinitProxiedServer = true\n\t\t}\n\n\t\tinitEvt := metrics.NewCommandEvent(\"init-\" + resolveInitDoltMode(initProxiedServer, sharedServer, initServerMode))\n\t\tdefer func() {\n\t\t\tif c := metrics.Global(); c != nil {\n\t\t\t\tc.CloseEventAndAdd(initEvt)\n\t\t\t}\n\t\t}()\n\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 {","sourceCodeStart":418,"sourceCodeEnd":454,"githubUrl":"https://github.com/gastownhall/beads/blob/71377f276968b452ee607177637970a4ff888584/cmd/bd/init.go#L418-L454","documentation":"`bd init` refuses to run when both --server and --proxied-server are supplied, because they select two mutually exclusive server modes. This is an upfront flag-conflict validation in the init command's RunE.","triggerScenarios":"Invoking `bd init --server --proxied-server` (initServerMode && initProxiedServer both true).","commonSituations":"Copy-pasting a server-mode init command and appending --proxied-server from another guide; scripted init templates that enable both modes accidentally.","solutions":["Remove --server if you intend to run behind a proxied server","Remove --proxied-server if you intend a direct embedded/direct server","Pick exactly one server mode per init invocation"],"exampleFix":"// before\nbd init --server --proxied-server\n// after\nbd init --proxied-server","handlingStrategy":"validation","validationCode":"# shell pre-check\nset -- $FLAGS\nfor f in --server --proxied-server; do :; done\ncase \"$FLAGS\" in *--server*--proxied-server*|*--proxied-server*--server*) echo 'conflict'; exit 1;; esac","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Pass exactly one server-mode flag per init invocation","Lint CI init scripts for duplicate server-mode flags","Prefer proxied-server config files over stacking mode flags"],"tags":["cli","flag-conflict","init","server-mode"],"backgroundTag":"mutually-exclusive-flags","analyzedSha":"71377f276968b452ee607177637970a4ff888584","analyzedAt":"2026-08-30T18:55:39.744Z","schemaVersion":2},"datasetVersion":"2026-08-30T23:17:21.991Z"}