hyperledger/fabric · error

no orderer config in bundle

Error message

no orderer config in bundle

What it means

Consenter.IsChannelMember guard: the channel config bundle built from the join block has no Orderer group (bundle.OrdererConfig() returned false). Without orderer config, the etcdraft consensus metadata containing the consenters set cannot be read to test membership.

Source

Thrown at orderer/consensus/etcdraft/consenter.go:244

		nil,
	)
}

func (c *Consenter) IsChannelMember(joinBlock *common.Block) (bool, error) {
	if joinBlock == nil {
		return false, errors.New("nil block")
	}
	envelopeConfig, err := protoutil.ExtractEnvelope(joinBlock, 0)
	if err != nil {
		return false, err
	}
	bundle, err := channelconfig.NewBundleFromEnvelope(envelopeConfig, c.BCCSP)
	if err != nil {
		return false, err
	}
	oc, exists := bundle.OrdererConfig()
	if !exists {
		return false, errors.New("no orderer config in bundle")
	}
	configMetadata := &etcdraft.ConfigMetadata{}
	if err := proto.Unmarshal(oc.ConsensusMetadata(), configMetadata); err != nil {
		return false, err
	}

	verifyOpts, err := createX509VerifyOptions(oc)
	if err != nil {
		return false, errors.Wrapf(err, "failed to create x509 verify options from orderer config")
	}

	if err := VerifyConfigMetadata(configMetadata, verifyOpts); err != nil {
		return false, errors.Wrapf(err, "failed to validate config metadata of ordering config")
	}

	consenters := make(map[uint64]*etcdraft.Consenter)
	for i, c := range configMetadata.GetConsenters() {
		consenters[uint64(i+1)] = c // the IDs don't matter

View on GitHub (pinned to 2736b63f8f)

Solutions

  1. Join with a config block that contains the Orderer group
  2. Regenerate the genesis block for an ordering channel
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at orderer/consensus/etcdraft/consenter.go:244 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/538eb657775cc68b. Report an issue: GitHub.