{"record":{"id":"059dba47a54e5aae","repo":"hyperledger/fabric","slug":"no-endpoints-currently-defined","errorCode":null,"errorMessage":"no endpoints currently defined","messagePattern":"no endpoints currently defined","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"common/deliverclient/orderers/connection.go","lineNumber":74,"sourceCode":"\tAddresses []string\n\tRootCerts [][]byte\n}\n\nfunc NewConnectionSource(logger *flogging.FabricLogger, overrides map[string]*Endpoint, selfEndpoint string) *ConnectionSource {\n\treturn &ConnectionSource{\n\t\torgToEndpointsHash: map[string][]byte{},\n\t\tlogger:             logger,\n\t\toverrides:          overrides,\n\t\tselfEndpoint:       selfEndpoint,\n\t}\n}\n\n// RandomEndpoint returns a random endpoint.\nfunc (cs *ConnectionSource) RandomEndpoint() (*Endpoint, error) {\n\tcs.mutex.RLock()\n\tdefer cs.mutex.RUnlock()\n\tif len(cs.allEndpoints) == 0 {\n\t\treturn nil, errors.Errorf(\"no endpoints currently defined\")\n\t}\n\treturn cs.allEndpoints[rand.IntN(len(cs.allEndpoints))], nil\n}\n\nfunc (cs *ConnectionSource) Endpoints() []*Endpoint {\n\tcs.mutex.RLock()\n\tdefer cs.mutex.RUnlock()\n\n\treturn cs.allEndpoints\n}\n\n// ShuffledEndpoints returns a shuffled array of endpoints in a new slice.\nfunc (cs *ConnectionSource) ShuffledEndpoints() []*Endpoint {\n\tcs.mutex.RLock()\n\tdefer cs.mutex.RUnlock()\n\n\tn := len(cs.allEndpoints)\n\treturnedSlice := make([]*Endpoint, n)","sourceCodeStart":56,"sourceCodeEnd":92,"githubUrl":"https://github.com/hyperledger/fabric/blob/2736b63f8fd5932511d56fe68b7039d15977f7f6/common/deliverclient/orderers/connection.go#L56-L92","documentation":"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.","triggerScenarios":"Thrown at common/deliverclient/orderers/connection.go:74 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify orderer endpoints are configured (bootstrap or channel config) for the org","Wait for endpoint discovery/gossip to populate the list, then retry"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2736b63f8fd5932511d56fe68b7039d15977f7f6","analyzedAt":"2026-09-04T08:52:36.465Z","contentChangedAt":"2026-09-04T08:52:36.465Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}