{"record":{"id":"f35f085c16c7ce4a","repo":"hyperledger/fabric","slug":"no-values-in-orderer-group","errorCode":null,"errorMessage":"no values in 'Orderer' group","messagePattern":"no values in 'Orderer' group","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"orderer/consensus/smartbft/configverifier.go","lineNumber":112,"sourceCode":"func (cbv *ConfigBlockValidator) checkConsentersMatchPolicy(conf *common.Config) error {\n\tif conf == nil {\n\t\treturn fmt.Errorf(\"empty Config\")\n\t}\n\n\tif conf.ChannelGroup == nil {\n\t\treturn fmt.Errorf(\"empty channel group\")\n\t}\n\n\tif len(conf.ChannelGroup.Groups) == 0 {\n\t\treturn fmt.Errorf(\"no groups in channel group\")\n\t}\n\n\tif conf.ChannelGroup.Groups[\"Orderer\"] == nil {\n\t\treturn fmt.Errorf(\"no 'Orderer' group in channel groups\")\n\t}\n\n\tif len(conf.ChannelGroup.Groups[\"Orderer\"].Values) == 0 {\n\t\treturn fmt.Errorf(\"no values in 'Orderer' group\")\n\t}\n\n\tif conf.ChannelGroup.Groups[\"Orderer\"].Values[\"Orderers\"] == nil {\n\t\treturn fmt.Errorf(\"no values in 'Orderer' group\")\n\t}\n\n\tords := &common.Orderers{}\n\tif err := proto.Unmarshal(conf.ChannelGroup.Groups[\"Orderer\"].Values[\"Orderers\"].Value, ords); err != nil {\n\t\treturn err\n\t}\n\n\tn := len(ords.ConsenterMapping)\n\tf := (n - 1) / 3\n\n\tvar identities []*msp.MSPPrincipal\n\tvar pols []*common.SignaturePolicy\n\tfor i, consenter := range ords.ConsenterMapping {\n\t\tif consenter == nil {","sourceCodeStart":94,"sourceCodeEnd":130,"githubUrl":"https://github.com/hyperledger/fabric/blob/2736b63f8fd5932511d56fe68b7039d15977f7f6/orderer/consensus/smartbft/configverifier.go#L94-L130","documentation":"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.","triggerScenarios":"Thrown at orderer/consensus/smartbft/configverifier.go:112 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Fix the config update so the Orderer group retains its Orderers value","Regenerate the config update from a complete current config"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2736b63f8fd5932511d56fe68b7039d15977f7f6","analyzedAt":"2026-09-04T08:52:36.465Z","contentChangedAt":"2026-09-04T08:52:36.465Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}