{"record":{"id":"1eef52c6dbded117","repo":"gastownhall/beads","slug":"proxied-server-idle-timeout-requires-proxied-s","errorCode":null,"errorMessage":"--proxied-server-idle-timeout requires --proxied-server","messagePattern":"--proxied-server-idle-timeout requires --proxied-server","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/bd/init.go","lineNumber":490,"sourceCode":"\t\t\t}\n\t\t\tif !filepath.IsAbs(serverRootPath) {\n\t\t\t\treturn fmt.Errorf(\"--proxied-server-root-path must be an absolute path, got %q\", serverRootPath)\n\t\t\t}\n\t\t\tif err := validateProxiedServerRootPath(serverRootPath); err != nil {\n\t\t\t\treturn fmt.Errorf(\"--proxied-server-root-path %v\", err)\n\t\t\t}\n\t\t}\n\t\tif serverProxyPort != 0 {\n\t\t\tif !initProxiedServer {\n\t\t\t\treturn fmt.Errorf(\"--proxied-server-port requires --proxied-server\")\n\t\t\t}\n\t\t\tif serverProxyPort < 1 || serverProxyPort > 65535 {\n\t\t\t\treturn fmt.Errorf(\"--proxied-server-port must be between 1 and 65535, got %d\", serverProxyPort)\n\t\t\t}\n\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)\")","sourceCodeStart":472,"sourceCodeEnd":508,"githubUrl":"https://github.com/gastownhall/beads/blob/71377f276968b452ee607177637970a4ff888584/cmd/bd/init.go#L472-L508","documentation":"`--proxied-server-idle-timeout` only applies in proxied-server mode; passing it without `--proxied-server` is rejected. The idle timeout controls when the proxy tears down idle connections, so it is meaningless without the proxy (cmd/bd/init.go:488-491).","triggerScenarios":"Running `bd init --proxied-server-idle-timeout 5m` (or with `=` form) without `--proxied-server`; detected via `idleTimeoutSet && !initProxiedServer`. Also occurs when BEADS_DOLT_PROXIED_SERVER=1 was expected but not set.","commonSituations":"Tuning scripts that set the timeout flag for all init invocations; combining flags from a proxied-mode snippet into a non-proxied init; CI jobs where the env var enabling proxy mode was dropped from the job spec.","solutions":["Add `--proxied-server` to the init command.","Export BEADS_DOLT_PROXIED_SERVER=1 so initProxiedServer becomes true.","Remove the `--proxied-server-idle-timeout` flag if not running a proxied server."],"exampleFix":"// before\nbd init --proxied-server-idle-timeout 5m\n// after\nbd init --proxied-server --proxied-server-idle-timeout 5m","handlingStrategy":"validation","validationCode":"#!/usr/bin/env bash\nif [[ -n \"$IDLE_TIMEOUT\" ]] && [[ -z \"$PROXIED\" ]]; then\n  echo \"--proxied-server-idle-timeout requires --proxied-server\" >&2; exit 2\nfi","typeGuard":"func timeoutFlagValid(useProxied, timeoutSet bool) bool { return !timeoutSet || useProxied }","tryCatchPattern":"if out, err := exec.Command(\"bd\", \"init\", args...).CombinedOutput(); err != nil {\n    if strings.Contains(string(out), \"--proxied-server-idle-timeout requires --proxied-server\") {\n        // add --proxied-server or drop the timeout flag\n    }\n}","preventionTips":["Set tuning flags like idle-timeout only in the proxied-mode code path.","Use BEADS_DOLT_PROXIED_SERVER=1 consistently when the environment is proxied.","Review CI job specs after removing mode-enabling env vars."],"tags":["cli","flag-validation","timeout","proxied-server"],"backgroundTag":"flag-requires-flag","analyzedSha":"71377f276968b452ee607177637970a4ff888584","analyzedAt":"2026-08-30T18:55:39.744Z","schemaVersion":2},"datasetVersion":"2026-08-30T23:17:21.991Z"}