hyperledger/fabric · error
empty policies in 'Orderer' group
Error message
empty policies in 'Orderer' group
What it means
checkConsentersMatchPolicy guard: the Orderer group in the config has an empty Policies map. The smartbft verifier needs at least the BlockValidation policy to compare against the expected BFT quorum policy, so an orderer group without policies is rejected.
Source
Thrown at orderer/consensus/smartbft/configverifier.go:156
identities = append(identities, &msp.MSPPrincipal{
PrincipalClassification: msp.MSPPrincipal_IDENTITY,
Principal: protoutil.MarshalOrPanic(&msp.SerializedIdentity{Mspid: consenter.MspId, IdBytes: consenter.Identity}),
})
}
quorumSize := policies.ComputeBFTQuorum(n, f)
sp := &common.SignaturePolicyEnvelope{
Rule: policydsl.NOutOf(int32(quorumSize), pols),
Identities: identities,
}
expectedConfigPol := &common.Policy{
Type: int32(common.Policy_SIGNATURE),
Value: protoutil.MarshalOrPanic(sp),
}
if len(conf.ChannelGroup.Groups["Orderer"].Policies) == 0 {
return fmt.Errorf("empty policies in 'Orderer' group")
}
if conf.ChannelGroup.Groups["Orderer"].Policies["BlockValidation"] == nil {
return fmt.Errorf("block validation policy is not found in the policies of 'Orderer' group")
}
actualPolicy := conf.ChannelGroup.Groups["Orderer"].Policies["BlockValidation"].Policy
if !proto.Equal(expectedConfigPol, actualPolicy) {
return fmt.Errorf("block validation policy should be a signature policy: %v but it is %v instead", expectedConfigPol, actualPolicy)
}
consensusTypeConfigValue := conf.ChannelGroup.Groups["Orderer"].Values["ConsensusType"]
if consensusTypeConfigValue == nil {
return fmt.Errorf("missing consensus type property in config")
}
View on GitHub (pinned to 2736b63f8f)
Solutions
- Ensure the config update preserves the Orderer group's policies
- Regenerate the config from a known-good current config
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at orderer/consensus/smartbft/configverifier.go:156 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/a4cfbcdc19d83a02.
Report an issue: GitHub.