hyperledger/fabric · error
no values in 'Orderer' group
Error message
no values in 'Orderer' group
What it means
checkConsentersMatchPolicy guard: the Orderer group in the proposed config exists but its Values map is empty, so the 'Orderers' (consenter mapping) value cannot be read. The smartbft config verifier cannot reconstruct the expected block-validation policy from an empty group.
Source
Thrown at orderer/consensus/smartbft/configverifier.go:112
func (cbv *ConfigBlockValidator) checkConsentersMatchPolicy(conf *common.Config) error {
if conf == nil {
return fmt.Errorf("empty Config")
}
if conf.ChannelGroup == nil {
return fmt.Errorf("empty channel group")
}
if len(conf.ChannelGroup.Groups) == 0 {
return fmt.Errorf("no groups in channel group")
}
if conf.ChannelGroup.Groups["Orderer"] == nil {
return fmt.Errorf("no 'Orderer' group in channel groups")
}
if len(conf.ChannelGroup.Groups["Orderer"].Values) == 0 {
return fmt.Errorf("no values in 'Orderer' group")
}
if conf.ChannelGroup.Groups["Orderer"].Values["Orderers"] == nil {
return fmt.Errorf("no values in 'Orderer' group")
}
ords := &common.Orderers{}
if err := proto.Unmarshal(conf.ChannelGroup.Groups["Orderer"].Values["Orderers"].Value, ords); err != nil {
return err
}
n := len(ords.ConsenterMapping)
f := (n - 1) / 3
var identities []*msp.MSPPrincipal
var pols []*common.SignaturePolicy
for i, consenter := range ords.ConsenterMapping {
if consenter == nil {View on GitHub (pinned to 2736b63f8f)
Solutions
- Fix the config update so the Orderer group retains its Orderers value
- Regenerate the config update from a complete current config
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at orderer/consensus/smartbft/configverifier.go:112 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/f35f085c16c7ce4a.
Report an issue: GitHub.