jackc/pgx · error
Received an invalid size for an inet
Error message
Received an invalid size for an inet: %d
What it means
A binary inet/cidr value must be exactly 8 bytes (IPv4) or 20 bytes (IPv6); the server sent a different length. The malformed inet binary representation is at fault, indicating protocol corruption or a non-inet value decoded as inet.
Solutions
- Treat as protocol/data corruption — verify the column is inet/cidr
- Check for driver/server version mismatch or wire tampering
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at pgtype/inet.go:156 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/c9a77cc99ce2ece8.
Report an issue: GitHub.
Appendix: source
Thrown at pgtype/inet.go:156
if !prefix.IsValid() {
return nil, nil
}
return prefix, nil
}
type scanPlanBinaryInetToNetipPrefixScanner struct{}
func (scanPlanBinaryInetToNetipPrefixScanner) Scan(src []byte, dst any) error {
scanner := (dst).(NetipPrefixScanner)
if src == nil {
return scanner.ScanNetipPrefix(netip.Prefix{})
}
if len(src) != 8 && len(src) != 20 {
return fmt.Errorf("Received an invalid size for an inet: %d", len(src))
}
// ignore family
bits := src[1]
// ignore is_cidr
// ignore addressLength - implicit in length of message
addr, ok := netip.AddrFromSlice(src[4:])
if !ok {
return errors.New("netip.AddrFromSlice failed")
}
return scanner.ScanNetipPrefix(netip.PrefixFrom(addr, int(bits)))
}
type scanPlanTextAnyToNetipPrefixScanner struct{}
func (scanPlanTextAnyToNetipPrefixScanner) Scan(src []byte, dst any) error {View on GitHub (pinned to ec1a0befd2)