{"record":{"id":"22f6097fbd365016","repo":"gastownhall/beads","slug":"proxied-server-external-flags-require-proxie","errorCode":null,"errorMessage":"--proxied-server-external-* flags require --proxied-server","messagePattern":"--proxied-server-external-\\* flags require --proxied-server","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/bd/init.go","lineNumber":505,"sourceCode":"\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 {\n\t\t\t\treturn fmt.Errorf(\"--proxied-server-idle-timeout must be 0 (never) or a positive duration, got %s\", serverProxyIdleTimeout)\n\t\t\t}\n\t\t\tif serverProxyIdleTimeout == 0 {\n\t\t\t\tserverProxyIdleTimeout = proxy.IdleTimeoutNever\n\t\t\t}\n\t\t}\n\n\t\texternalProvided := externalHost != \"\" || externalPort != 0 || externalSocketPath != \"\" ||\n\t\t\texternalUser != \"\" ||\n\t\t\texternalTLS || externalTLSCACertPath != \"\" || externalTLSCertPath != \"\" || externalTLSKeyPath != \"\" ||\n\t\t\texternalTLSServerName != \"\" || externalTLSSkipVerify || externalKeepAlive != 0\n\t\tif externalProvided && !initProxiedServer {\n\t\t\treturn fmt.Errorf(\"--proxied-server-external-* flags require --proxied-server\")\n\t\t}\n\t\tif externalProvided && serverConfigPath != \"\" {\n\t\t\treturn fmt.Errorf(\"--proxied-server-external-* flags cannot be combined with --proxied-server-config-path (external mode has no managed dolt sql-server to configure)\")\n\t\t}\n\t\tif externalProvided && debugMode {\n\t\t\treturn fmt.Errorf(\"--debug cannot be combined with --proxied-server-external-* (debug applies to the managed dolt sql-server only)\")\n\t\t}\n\t\tvar externalConfig *configfile.ExternalDoltConfig\n\t\tif externalProvided {\n\t\t\tcfg := configfile.ExternalDoltConfig{\n\t\t\t\tHost:            externalHost,\n\t\t\t\tPort:            externalPort,\n\t\t\t\tSocket:          externalSocketPath,\n\t\t\t\tUser:            externalUser,\n\t\t\t\tTLSRequired:     externalTLS,\n\t\t\t\tTLSCACert:       externalTLSCACertPath,\n\t\t\t\tTLSCert:         externalTLSCertPath,\n\t\t\t\tTLSKey:          externalTLSKeyPath,","sourceCodeStart":487,"sourceCodeEnd":523,"githubUrl":"https://github.com/gastownhall/beads/blob/71377f276968b452ee607177637970a4ff888584/cmd/bd/init.go#L487-L523","documentation":"The `--proxied-server-external-*` flag family configures an externally managed dolt sql-server (host, port, socket, user, TLS options, keep-alive) for the proxy to connect to. These flags are only honored in proxied-server mode; if any of them is set without `--proxied-server`, init rejects the whole set with this single error (cmd/bd/init.go:500-506).","triggerScenarios":"Any of externalHost != \"\", externalPort != 0, externalSocketPath != \"\", externalUser != \"\", externalTLS, any external TLS path/server-name flag, skip-verify, or keep-alive set, while initProxiedServer is false (no `--proxied-server` flag and BEADS_DOLT_PROXIED_SERVER != 1).","commonSituations":"Connecting bd to a pre-existing dolt sql-server but forgetting that external mode still requires `--proxied-server`; scripts that set external connection flags per-environment while the mode toggle lives elsewhere; docs examples copied partially.","solutions":["Add `--proxied-server` to the init command along with the external flags.","Set BEADS_DOLT_PROXIED_SERVER=1 in the environment.","Remove the external-* flags if you are not running proxied-server mode."],"exampleFix":"// before\nbd init --proxied-server-external-host db.example.com --proxied-server-external-port 3307\n// after\nbd init --proxied-server --proxied-server-external-host db.example.com --proxied-server-external-port 3307","handlingStrategy":"validation","validationCode":"#!/usr/bin/env bash\nif [[ -n \"$EXT_HOST$EXT_SOCKET$EXT_USER\" || -n \"$EXT_TLS_FLAGS\" ]] && [[ -z \"$PROXIED\" ]]; then\n  echo \"--proxied-server-external-* flags require --proxied-server\" >&2; exit 2\nfi","typeGuard":"func externalFlagsValid(useProxied bool, externalSet bool) bool { return !externalSet || useProxied }","tryCatchPattern":"if out, err := exec.Command(\"bd\", \"init\", args...).CombinedOutput(); err != nil {\n    if strings.Contains(string(out), \"--proxied-server-external-* flags require --proxied-server\") {\n        // add --proxied-server or drop external flags\n    }\n}","preventionTips":["Always pair the external-* connection flags with --proxied-server in deployment helpers.","Keep the mode toggle and dependent flags in one function/config block.","Document that external dolt servers still require proxied-server mode in runbooks."],"tags":["cli","flag-validation","external-server","proxied-server"],"backgroundTag":"flag-requires-flag","analyzedSha":"71377f276968b452ee607177637970a4ff888584","analyzedAt":"2026-08-30T18:55:39.744Z","schemaVersion":2},"datasetVersion":"2026-08-30T23:17:21.991Z"}