thanos-io/thanos · error
Address is empty.
Error message
Address is empty.
What it means
validateAddrs (used by the repeatable address flags) rejects an address slice containing an empty string, meaning a peer/endpoint address was supplied as blank — usually an empty list entry or an unfilled environment substitution.
Solutions
- Provide a non-empty host:port address.
- Check for unset environment variables substituted into the flag.
- Remove empty entries from the address list.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at pkg/extkingpin/flags.go:54 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of thanos-io/thanos@35b8b99117 (2026-09-07).
Data as JSON: /api/errors/ee2934b1285c7faa.
Report an issue: GitHub.
Appendix: source
Thrown at pkg/extkingpin/flags.go:54
return strings.Join(*a, ",")
}
// Ensure flag is repeatable.
func (a *addressSlice) IsCumulative() bool {
return true
}
func Addrs(flags *kingpin.FlagClause) (target *addressSlice) {
target = &addressSlice{}
flags.SetValue((*addressSlice)(target))
return
}
// validateAddrs checks an address slice for empty or invalid elements.
func validateAddrs(addrs addressSlice) error {
for _, addr := range addrs {
if addr == "" {
return errors.New("Address is empty.")
}
qtypeAndName := strings.SplitN(addr, "+", 2)
hostAndPort := strings.SplitN(addr, ":", 2)
if len(qtypeAndName) != 2 && len(hostAndPort) != 2 {
return errors.Errorf("Address %s is not of <host>:<port> format or a valid DNS query.", addr)
}
}
return nil
}
// RegisterHTTPFlags register flags commonly used to configure http servers with.
func RegisterHTTPFlags(cmd FlagClause) (httpBindAddr *string, httpGracePeriod *model.Duration, httpTLSConfig *string) {
httpBindAddr = cmd.Flag("http-address", "Listen host:port for HTTP endpoints.").Default("0.0.0.0:10902").String()
httpGracePeriod = ModelDuration(cmd.Flag("http-grace-period", "Time to wait after an interrupt received for HTTP Server.").Default("2m")) // by default it's the same as query.timeout.
httpTLSConfig = cmd.Flag(
"http.config",View on GitHub (pinned to 35b8b99117)