{"record":{"id":"ce4f24edc39b918d","repo":"hyperledger/fabric","slug":"channel-s-not-found-in-config","errorCode":null,"errorMessage":"channel %s not found in config","messagePattern":"channel (.+?) not found in config","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"orderer/common/cluster/clusterservice.go","lineNumber":153,"sourceCode":"\tif !bytes.Equal(tlsBinding, authReq.SessionBinding) {\n\t\treturn nil, errors.New(\"session binding mismatch\")\n\t}\n\n\tmsg, err := asn1.Marshal(AuthRequestSignature{\n\t\tVersion:        int64(authReq.Version),\n\t\tTimestamp:      EncodeTimestamp(authReq.Timestamp),\n\t\tFromId:         strconv.FormatUint(authReq.FromId, 10),\n\t\tToId:           strconv.FormatUint(authReq.ToId, 10),\n\t\tSessionBinding: tlsBinding,\n\t\tChannel:        authReq.Channel,\n\t})\n\tif err != nil {\n\t\treturn nil, errors.Wrap(err, \"ASN encoding failed\")\n\t}\n\n\tmembership := s.MembershipByChannel[authReq.Channel]\n\tif membership == nil {\n\t\treturn nil, errors.Errorf(\"channel %s not found in config\", authReq.Channel)\n\t}\n\n\tfromIdentity := membership.MemberMapping[authReq.FromId]\n\tif fromIdentity == nil {\n\t\treturn nil, errors.Errorf(\"node %d is not member of channel %s\", authReq.FromId, authReq.Channel)\n\t}\n\n\ttoIdentity := membership.MemberMapping[authReq.ToId]\n\tif toIdentity == nil {\n\t\treturn nil, errors.Errorf(\"node %d is not member of channel %s\", authReq.ToId, authReq.Channel)\n\t}\n\n\tequal, err := CompareCertPublicKeys(toIdentity, s.NodeIdentity)\n\tif err != nil {\n\t\treturn nil, errors.Wrap(err, \"failed to compare cert public keys\")\n\t}\n\tif !equal {\n\t\ts.Logger.Debugf(\"node id mismatch for node %d, toIdentity: %s, s.NodeIdentity: %s\", authReq.FromId, string(toIdentity), string(s.NodeIdentity))","sourceCodeStart":135,"sourceCodeEnd":171,"githubUrl":"https://github.com/hyperledger/fabric/blob/2736b63f8fd5932511d56fe68b7039d15977f7f6/orderer/common/cluster/clusterservice.go#L135-L171","documentation":"VerifyAuthRequest guard: the cluster service's in-memory MembershipByChannel map has no entry for the channel named in the authentication request. Either this orderer is not a member of that channel, the channel has not been joined/loaded yet, or the remote node named a non-existent channel.","triggerScenarios":"Thrown at orderer/common/cluster/clusterservice.go:153 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify both nodes have joined the channel with 'osnadmin channel list'","Check the channel name in the request matches the configured channel","Wait for channel onboarding to complete before handling Step requests"],"exampleFix":null,"handlingStrategy":"validation","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"}