{"record":{"id":"ce24942a160d1b67","repo":"hyperledger/fabric","slug":"config-does-not-contain-orderer-config","errorCode":null,"errorMessage":"config does not contain orderer config","messagePattern":"config does not contain orderer config","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"orderer/common/multichannel/ledger_resources.go","lineNumber":23,"sourceCode":"*/\n\npackage multichannel\n\nimport (\n\t\"github.com/hyperledger/fabric-lib-go/bccsp\"\n\t\"github.com/hyperledger/fabric-protos-go-apiv2/common\"\n\t\"github.com/hyperledger/fabric/common/channelconfig\"\n\t\"github.com/hyperledger/fabric/common/ledger/blockledger\"\n\t\"github.com/hyperledger/fabric/protoutil\"\n\t\"github.com/pkg/errors\"\n)\n\n// checkResources makes sure that the channel config is compatible with this binary and logs sanity checks\nfunc checkResources(res channelconfig.Resources) error {\n\tchannelconfig.LogSanityChecks(res)\n\toc, ok := res.OrdererConfig()\n\tif !ok {\n\t\treturn errors.New(\"config does not contain orderer config\")\n\t}\n\tif err := oc.Capabilities().Supported(); err != nil {\n\t\treturn errors.WithMessagef(err, \"config requires unsupported orderer capabilities: %s\", err)\n\t}\n\tif err := res.ChannelConfig().Capabilities().Supported(); err != nil {\n\t\treturn errors.WithMessagef(err, \"config requires unsupported channel capabilities: %s\", err)\n\t}\n\treturn nil\n}\n\n// checkResourcesOrPanic invokes checkResources and panics if an error is returned\nfunc checkResourcesOrPanic(res channelconfig.Resources) {\n\tif err := checkResources(res); err != nil {\n\t\tlogger.Panicf(\"[channel %s] %s\", res.ConfigtxValidator().ChannelID(), err)\n\t}\n}\n\ntype mutableResources interface {","sourceCodeStart":5,"sourceCodeEnd":41,"githubUrl":"https://github.com/hyperledger/fabric/blob/2736b63f8fd5932511d56fe68b7039d15977f7f6/orderer/common/multichannel/ledger_resources.go#L5-L41","documentation":"checkResources guard: res.OrdererConfig() returned false — the channel config bundle contains no Orderer group, so batch size, consensus type, and policies cannot be read. The channel configuration is incomplete for an ordering node.","triggerScenarios":"Thrown at orderer/common/multichannel/ledger_resources.go:23 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Re-create the channel with a configtx that includes the Orderer group","Verify the config block used to join the channel was generated for an ordering channel"],"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"}