hyperledger/fabric · error
unexpected delivey service policy: `%s`
Error message
unexpected delivey service policy: `%s`
What it means
Returned by StartDeliverForChannel when the consensus type is BFT and DeliverServiceConfig.Policy is neither 'cluster' nor 'simple'. The delivery service cannot choose a block-deliverer construction strategy, so channel delivery startup aborts.
Source
Thrown at core/deliverservice/deliveryclient.go:140
return errors.WithMessagef(err, "failed to create block deliverer for channel `%s`", chainID)
}
oc, ok := bundle.OrdererConfig()
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() {View on GitHub (pinned to 2736b63f8f)
Solutions
- Set peer.deliveryclient.policy to 'cluster' or 'simple' in the peer configuration
- Validate the policy value at config load time
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at core/deliverservice/deliveryclient.go:140 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/e81a05822d95d078.
Report an issue: GitHub.