hyperledger/fabric · error
missing address parameter
Error message
missing address parameter
What it means
NewGRPCServer guard: the listen address string is empty, so no listener can be created. The at-fault input is the address parameter (e.g., unset peer.listenAddress or an empty endpoint passed by a caller).
Source
Thrown at internal/pkg/comm/server.go:46
listener net.Listener
// GRPC server
server *grpc.Server
// Certificate presented by the server for TLS communication
// stored as an atomic reference
serverCertificate atomic.Value
// lock to protect concurrent access to append / remove
lock *sync.Mutex
// TLS configuration used by the grpc server
tls *TLSConfig
// Server for gRPC Health Check Protocol.
healthServer *health.Server
}
// NewGRPCServer creates a new implementation of a GRPCServer given a
// listen address
func NewGRPCServer(address string, serverConfig ServerConfig) (*GRPCServer, error) {
if address == "" {
return nil, errors.New("missing address parameter")
}
// create our listener
lis, err := net.Listen("tcp", address)
if err != nil {
return nil, err
}
return NewGRPCServerFromListener(lis, serverConfig)
}
// NewGRPCServerFromListener creates a new implementation of a GRPCServer given
// an existing net.Listener instance using default keepalive
func NewGRPCServerFromListener(listener net.Listener, serverConfig ServerConfig) (*GRPCServer, error) {
grpcServer := &GRPCServer{
address: listener.Addr().String(),
listener: listener,
lock: &sync.Mutex{},
}
View on GitHub (pinned to 2736b63f8f)
Solutions
- Pass a non-empty listen address (host:port) to NewGRPCServer, e.g. '0.0.0.0:7051' or '127.0.0.1:9051'
- Check the caller: the address usually comes from config (peer.listenAddress / orderer.General.ListenAddress); verify that config key is set and read correctly
- Guard at the call site: validate/normalize the address string (strings.TrimSpace, net.SplitHostPort) before constructing the server and fail fast with a clearer config-oriented message
- If the address is computed dynamically, ensure the computation cannot yield '' (e.g. when port is disabled or optional) and fall back to a sane default
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at internal/pkg/comm/server.go:46 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/cd1ad73b300a8d3d.
Report an issue: GitHub.