gastownhall/beads · error
--server and --proxied-server are mutually exclusive
Error message
--server and --proxied-server are mutually exclusive
What it means
`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.
Source
Thrown at cmd/bd/init.go:436
externalTLSCACertPath, _ := cmd.Flags().GetString("proxied-server-external-tls-ca-cert-path")
externalTLSCertPath, _ := cmd.Flags().GetString("proxied-server-external-tls-cert-path")
externalTLSKeyPath, _ := cmd.Flags().GetString("proxied-server-external-tls-key-path")
externalTLSServerName, _ := cmd.Flags().GetString("proxied-server-external-tls-server-name")
externalTLSSkipVerify, _ := cmd.Flags().GetBool("proxied-server-external-tls-skip-verify")
externalKeepAlive, _ := cmd.Flags().GetDuration("proxied-server-external-keep-alive")
if os.Getenv("BEADS_DOLT_PROXIED_SERVER") == "1" {
initProxiedServer = true
}
initEvt := metrics.NewCommandEvent("init-" + resolveInitDoltMode(initProxiedServer, sharedServer, initServerMode))
defer func() {
if c := metrics.Global(); c != nil {
c.CloseEventAndAdd(initEvt)
}
}()
if initProxiedServer && initServerMode {
return fmt.Errorf("--server and --proxied-server are mutually exclusive")
}
if initProxiedServer {
if sharedServer || externalServer ||
serverHost != "" || serverPort != 0 || serverSocket != "" || serverUser != "" || cmd.Flags().Changed("server-tls") {
return fmt.Errorf("--proxied-server cannot be combined with --shared-server, --external, or any --server-* flag")
}
}
if initTeamServer && !initProxiedServer {
return fmt.Errorf("--team-server requires --proxied-server")
}
if serverConfigPath != "" {
if !initProxiedServer {
return fmt.Errorf("--proxied-server-config-path requires --proxied-server")
}
if !filepath.IsAbs(serverConfigPath) {
return fmt.Errorf("--proxied-server-config-path must be an absolute path, got %q", serverConfigPath)
}
if err := validateProxiedServerConfig(serverConfigPath); err != nil {View on GitHub (pinned to 71377f2769)
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
Example fix
// before bd init --server --proxied-server // after bd init --proxied-server
Defensive patterns
Strategy: validation
Validate before calling
# shell pre-check set -- $FLAGS for f in --server --proxied-server; do :; done case "$FLAGS" in *--server*--proxied-server*|*--proxied-server*--server*) echo 'conflict'; exit 1;; esac
Prevention
- 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
When it happens
Trigger: Invoking `bd init --server --proxied-server` (initServerMode && initProxiedServer both true).
Common situations: Copy-pasting a server-mode init command and appending --proxied-server from another guide; scripted init templates that enable both modes accidentally.
Related errors
- --proxied-server cannot be combined with --shared-server, --
- --team-server requires --proxied-server
- --proxied-server-config-path requires --proxied-server
- --proxied-server-log-path requires --proxied-server
- 'bd admin %s' is not yet supported in embedded mode
AI-assisted analysis of gastownhall/beads@71377f2769 (2026-08-30).
Data as JSON: /api/errors/0373870041858603.
Report an issue: GitHub.