hyperledger/fabric · error

channel %s not found in config

Error message

channel %s not found in config

What it means

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.

Source

Thrown at orderer/common/cluster/clusterservice.go:153

	if !bytes.Equal(tlsBinding, authReq.SessionBinding) {
		return nil, errors.New("session binding mismatch")
	}

	msg, err := asn1.Marshal(AuthRequestSignature{
		Version:        int64(authReq.Version),
		Timestamp:      EncodeTimestamp(authReq.Timestamp),
		FromId:         strconv.FormatUint(authReq.FromId, 10),
		ToId:           strconv.FormatUint(authReq.ToId, 10),
		SessionBinding: tlsBinding,
		Channel:        authReq.Channel,
	})
	if err != nil {
		return nil, errors.Wrap(err, "ASN encoding failed")
	}

	membership := s.MembershipByChannel[authReq.Channel]
	if membership == nil {
		return nil, errors.Errorf("channel %s not found in config", authReq.Channel)
	}

	fromIdentity := membership.MemberMapping[authReq.FromId]
	if fromIdentity == nil {
		return nil, errors.Errorf("node %d is not member of channel %s", authReq.FromId, authReq.Channel)
	}

	toIdentity := membership.MemberMapping[authReq.ToId]
	if toIdentity == nil {
		return nil, errors.Errorf("node %d is not member of channel %s", authReq.ToId, authReq.Channel)
	}

	equal, err := CompareCertPublicKeys(toIdentity, s.NodeIdentity)
	if err != nil {
		return nil, errors.Wrap(err, "failed to compare cert public keys")
	}
	if !equal {
		s.Logger.Debugf("node id mismatch for node %d, toIdentity: %s, s.NodeIdentity: %s", authReq.FromId, string(toIdentity), string(s.NodeIdentity))

View on GitHub (pinned to 2736b63f8f)

Solutions

  1. Verify both nodes have joined the channel with 'osnadmin channel list'
  2. Check the channel name in the request matches the configured channel
  3. Wait for channel onboarding to complete before handling Step requests
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at orderer/common/cluster/clusterservice.go:153 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/ce4f24edc39b918d. Report an issue: GitHub.