hyperledger/fabric · error
peer.address isn't in host:port format: %s
Error message
peer.address isn't in host:port format: %s
What it means
getLocalAddress found peer.address set but not in host:port form (auto-detect could not split it into host and port), so the peer cannot derive its advertised address. Triggered when peer.addressAutoKnow is disabled and the configured string lacks a port.
Source
Thrown at core/peer/config.go:345
c.StatsdWriteInterval = viper.GetDuration("metrics.statsd.writeInterval")
c.StatsdPrefix = viper.GetString("metrics.statsd.prefix")
c.DockerCert = config.GetPath("vm.docker.tls.cert.file")
c.DockerKey = config.GetPath("vm.docker.tls.key.file")
c.DockerCA = config.GetPath("vm.docker.tls.ca.file")
return nil
}
// getLocalAddress returns the address:port the local peer is operating on. Affected by env:peer.addressAutoDetect
func getLocalAddress() (string, error) {
peerAddress := viper.GetString("peer.address")
if peerAddress == "" {
return "", errors.New("peer.address isn't set")
}
host, port, err := net.SplitHostPort(peerAddress)
if err != nil {
return "", errors.Errorf("peer.address isn't in host:port format: %s", peerAddress)
}
localIP, err := getLocalIP()
if err != nil {
peerLogger.Errorf("local IP address not auto-detectable: %s", err)
return "", err
}
autoDetectedIPAndPort := net.JoinHostPort(localIP, port)
peerLogger.Info("Auto-detected peer address:", autoDetectedIPAndPort)
// If host is the IPv4 address "0.0.0.0" or the IPv6 address "::",
// then fallback to auto-detected address
if ip := net.ParseIP(host); ip != nil && ip.IsUnspecified() {
peerLogger.Info("Host is", host, ", falling back to auto-detected address:", autoDetectedIPAndPort)
return autoDetectedIPAndPort, nil
}
if viper.GetBool("peer.addressAutoDetect") {
peerLogger.Info("Auto-detect flag is set, returning", autoDetectedIPAndPort)View on GitHub (pinned to 2736b63f8f)
Solutions
- Set peer.address to a valid host:port (e.g. 0.0.0.0:7051) in core.yaml
- Or enable peer.addressAutoDetect to derive the address automatically
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at core/peer/config.go:345 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of hyperledger/fabric@2736b63f8f (2026-09-04).
Data as JSON: /api/errors/0f94290d983a5a3b.
Report an issue: GitHub.