gastownhall/beads · error
--proxied-server-external-* flags cannot be combined with --
Error message
--proxied-server-external-* flags cannot be combined with --proxied-server-config-path (external mode has no managed dolt sql-server to configure)
What it means
In proxied-server mode you must choose either a managed dolt sql-server (configured via `--proxied-server-config-path`) or an external one (via `--proxied-server-external-*` flags) — not both. Because external mode has no managed server, there is no config file to point at, so combining the two is rejected (cmd/bd/init.go:507-509).
Source
Thrown at cmd/bd/init.go:508
return fmt.Errorf("--proxied-server-idle-timeout requires --proxied-server")
}
if serverProxyIdleTimeout < 0 {
return fmt.Errorf("--proxied-server-idle-timeout must be 0 (never) or a positive duration, got %s", serverProxyIdleTimeout)
}
if serverProxyIdleTimeout == 0 {
serverProxyIdleTimeout = proxy.IdleTimeoutNever
}
}
externalProvided := externalHost != "" || externalPort != 0 || externalSocketPath != "" ||
externalUser != "" ||
externalTLS || externalTLSCACertPath != "" || externalTLSCertPath != "" || externalTLSKeyPath != "" ||
externalTLSServerName != "" || externalTLSSkipVerify || externalKeepAlive != 0
if externalProvided && !initProxiedServer {
return fmt.Errorf("--proxied-server-external-* flags require --proxied-server")
}
if externalProvided && serverConfigPath != "" {
return fmt.Errorf("--proxied-server-external-* flags cannot be combined with --proxied-server-config-path (external mode has no managed dolt sql-server to configure)")
}
if externalProvided && debugMode {
return fmt.Errorf("--debug cannot be combined with --proxied-server-external-* (debug applies to the managed dolt sql-server only)")
}
var externalConfig *configfile.ExternalDoltConfig
if externalProvided {
cfg := configfile.ExternalDoltConfig{
Host: externalHost,
Port: externalPort,
Socket: externalSocketPath,
User: externalUser,
TLSRequired: externalTLS,
TLSCACert: externalTLSCACertPath,
TLSCert: externalTLSCertPath,
TLSKey: externalTLSKeyPath,
TLSServerName: externalTLSServerName,
TLSSkipVerify: externalTLSSkipVerify,
KeepAlivePeriod: externalKeepAlive,View on GitHub (pinned to 71377f2769)
Solutions
- Remove `--proxied-server-config-path` and rely solely on the external-* flags.
- Remove the external-* flags and keep the managed config path if a managed server is what you want.
- Split into two init invocations/configs — one per mode.
Example fix
// before bd init --proxied-server --proxied-server-config-path /etc/beads/dolt.toml --proxied-server-external-host db.example.com // after bd init --proxied-server --proxied-server-external-host db.example.com --proxied-server-external-port 3307
Defensive patterns
Strategy: validation
Validate before calling
#!/usr/bin/env bash if [[ -n "$CONFIG_PATH" ]] && [[ -n "$EXT_HOST$EXT_PORT$EXT_SOCKET" ]]; then echo "external-* flags and --proxied-server-config-path are mutually exclusive" >&2; exit 2 fi
Type guard
func serverModeExclusive(configPathSet, externalSet bool) bool { return !(configPathSet && externalSet) } Try / catch
if out, err := exec.Command("bd", "init", args...).CombinedOutput(); err != nil {
if strings.Contains(string(out), "cannot be combined with --proxied-server-config-path") {
// drop config-path (external mode) or drop external flags (managed mode)
}
} Prevention
- Choose managed (config-path) or external (external-* flags) mode explicitly per environment.
- Delete old --proxied-server-config-path flags when migrating to external mode.
- Encode the exclusivity rule in wrapper scripts before invoking bd init.
When it happens
Trigger: Running `bd init --proxied-server --proxied-server-config-path /abs/dolt.toml` together with any `--proxied-server-external-*` flag (e.g. `--proxied-server-external-host` or `--proxied-server-external-tls`), i.e. `externalProvided && serverConfigPath != ""`.
Common situations: Migrating from managed to external mode and keeping the old config-path flag; merging flag sets from two scripts (one managed, one external); operator supplying the config file "for good measure" while also giving explicit connection settings.
Related errors
- --proxied-server-external-* flags require --proxied-server
- --debug cannot be combined with --proxied-server-external-*
- cannot use multiple conflict resolution flags
- --proxied-server-root-path requires --proxied-server
- --proxied-server-root-path must be an absolute path, got %q
AI-assisted analysis of gastownhall/beads@71377f2769 (2026-08-30).
Data as JSON: /api/errors/0a7083e0e8e7dbef.
Report an issue: GitHub.