jackc/pgx · error
error parsing port ( ) from lookup
Error message
error parsing port (%s) from lookup: %w
What it means
A custom LookupFunc returned an address string that embedded a port, but that port was not a valid uint16. The %s shows the unparseable port string returned by the resolver.
Solutions
- Fix the custom LookupFunc to return valid host or host:port strings
- Ensure returned ports are numeric and in the 0-65535 range
- Return bare IPs/hostnames if ports are not needed
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at pgconn/pgconn.go:221 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of jackc/pgx@ec1a0befd2 (2026-08-04).
Data as JSON: /api/errors/39d7e60dd6d11edf.
Report an issue: GitHub.
Appendix: source
Thrown at pgconn/pgconn.go:221
originalHostname: fb.Host,
tlsConfig: fb.TLSConfig,
})
continue
}
ips, err := config.LookupFunc(ctx, fb.Host)
if err != nil {
allErrors = append(allErrors, err)
continue
}
for _, ip := range ips {
splitIP, splitPort, err := net.SplitHostPort(ip)
if err == nil {
port, err := strconv.ParseUint(splitPort, 10, 16)
if err != nil {
return nil, []error{fmt.Errorf("error parsing port (%s) from lookup: %w", splitPort, err)}
}
network, address := NetworkAddress(splitIP, uint16(port))
configs = append(configs, &connectOneConfig{
network: network,
address: address,
originalHostname: fb.Host,
tlsConfig: fb.TLSConfig,
})
} else {
network, address := NetworkAddress(ip, fb.Port)
configs = append(configs, &connectOneConfig{
network: network,
address: address,
originalHostname: fb.Host,
tlsConfig: fb.TLSConfig,
})
}
}View on GitHub (pinned to ec1a0befd2)