hyperledger/fabric · error
no endpoints currently defined
Error message
no endpoints currently defined
What it means
Returned by ConnectionSource.RandomEndpoint when the endpoint list is empty — no orderer endpoints are known (nothing from overrides, org mappings, or static config). A random-endpoint pick is impossible, so the caller learns delivery cannot proceed.
Source
Thrown at common/deliverclient/orderers/connection.go:74
Addresses []string
RootCerts [][]byte
}
func NewConnectionSource(logger *flogging.FabricLogger, overrides map[string]*Endpoint, selfEndpoint string) *ConnectionSource {
return &ConnectionSource{
orgToEndpointsHash: map[string][]byte{},
logger: logger,
overrides: overrides,
selfEndpoint: selfEndpoint,
}
}
// RandomEndpoint returns a random endpoint.
func (cs *ConnectionSource) RandomEndpoint() (*Endpoint, error) {
cs.mutex.RLock()
defer cs.mutex.RUnlock()
if len(cs.allEndpoints) == 0 {
return nil, errors.Errorf("no endpoints currently defined")
}
return cs.allEndpoints[rand.IntN(len(cs.allEndpoints))], nil
}
func (cs *ConnectionSource) Endpoints() []*Endpoint {
cs.mutex.RLock()
defer cs.mutex.RUnlock()
return cs.allEndpoints
}
// ShuffledEndpoints returns a shuffled array of endpoints in a new slice.
func (cs *ConnectionSource) ShuffledEndpoints() []*Endpoint {
cs.mutex.RLock()
defer cs.mutex.RUnlock()
n := len(cs.allEndpoints)
returnedSlice := make([]*Endpoint, n)View on GitHub (pinned to 2736b63f8f)
Solutions
- Verify orderer endpoints are configured (bootstrap or channel config) for the org
- Wait for endpoint discovery/gossip to populate the list, then retry
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at common/deliverclient/orderers/connection.go:74 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/059dba47a54e5aae.
Report an issue: GitHub.