hyperledger/fabric · error

unexpected consensus type: `%s`

Error message

unexpected consensus type: `%s`

What it means

Returned by StartDeliverForChannel when the orderer config's consensus type is neither 'etcdraft' nor 'BFT'. The delivery service has no block deliverer implementation for that consensus type, so it refuses to start for the channel.

Source

Thrown at core/deliverservice/deliveryclient.go:143

	if !ok {
		// This should never happen because it is checked in peer.createChannel()
		return errors.Errorf("failed to create block deliverer for channel `%s`, missing OrdererConfig", chainID)
	}

	switch ct := oc.ConsensusType(); ct {
	case "etcdraft":
		d.blockDeliverer, err = d.createBlockDelivererCFT(chainID, ledgerInfo)
	case "BFT":
		switch d.conf.DeliverServiceConfig.Policy {
		case "cluster":
			d.blockDeliverer, err = d.createBlockDelivererBFT(chainID, ledgerInfo)
		case "simple":
			d.blockDeliverer, err = d.createBlockDelivererCFT(chainID, ledgerInfo)
		default:
			err = errors.Errorf("unexpected delivey service policy: `%s`", d.conf.DeliverServiceConfig.Policy)
		}
	default:
		err = errors.Errorf("unexpected consensus type: `%s`", ct)
	}

	if err != nil {
		return err
	}

	if !d.conf.DeliverServiceConfig.BlockGossipEnabled {
		logger.Infow("This peer will retrieve blocks from ordering service (will not disseminate them to other peers in the organization)", "channel", chainID)
	} else {
		logger.Infow("This peer will retrieve blocks from ordering service and disseminate to other peers in the organization", "channel", chainID)
	}

	d.channelID = chainID

	go func() {
		d.blockDeliverer.DeliverBlocks()
		finalizer()
	}()

View on GitHub (pinned to 2736b63f8f)

Solutions

  1. Use a supported consensus type (etcdraft or BFT) in the channel configuration
  2. Update the peer to a version supporting this consensus type
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at core/deliverservice/deliveryclient.go:143 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/43f52f22735b6770. Report an issue: GitHub.