{"record":{"id":"10ae841cbe29612b","repo":"hyperledger/fabric","slug":"error-retrieving-consenter-of-type-s","errorCode":null,"errorMessage":"error retrieving consenter of type: %s","messagePattern":"error retrieving consenter of type: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"orderer/common/multichannel/chainsupport.go","lineNumber":82,"sourceCode":"\t\tcutter: blockcutter.NewReceiverImpl(\n\t\t\tledgerResources.ConfigtxValidator().ChannelID(),\n\t\t\tledgerResources,\n\t\t\tblockcutterMetrics,\n\t\t),\n\t\tBCCSP: bccsp,\n\t}\n\n\t// Set up the msgprocessor\n\tcs.Processor = msgprocessor.NewStandardChannel(cs, msgprocessor.CreateStandardChannelFilters(cs, registrar.config), bccsp)\n\n\t// Set up the block writer\n\tcs.BlockWriter = newBlockWriter(lastBlock, cs)\n\n\t// Set up the consenter\n\tconsenterType := ledgerResources.SharedConfig().ConsensusType()\n\tconsenter, ok := consenters[consenterType]\n\tif !ok {\n\t\treturn nil, errors.Errorf(\"error retrieving consenter of type: %s\", consenterType)\n\t}\n\n\tcs.Chain, err = consenter.HandleChain(cs, metadata)\n\tif err != nil {\n\t\treturn nil, errors.WithMessagef(err, \"error creating consenter for channel: %s\", cs.ChannelID())\n\t}\n\n\tcs.MetadataValidator, ok = cs.Chain.(consensus.MetadataValidator)\n\tif !ok {\n\t\tcs.MetadataValidator = consensus.NoOpMetadataValidator{}\n\t}\n\n\tcs.StatusReporter, ok = cs.Chain.(consensus.StatusReporter)\n\tif !ok { // Non-cluster types: solo\n\t\tcs.StatusReporter = consensus.StaticStatusReporter{ConsensusRelation: types.ConsensusRelationOther, Status: types.StatusActive}\n\t}\n\n\tclusterRelation, status := cs.StatusReporter.StatusReport()","sourceCodeStart":64,"sourceCodeEnd":100,"githubUrl":"https://github.com/hyperledger/fabric/blob/2736b63f8fd5932511d56fe68b7039d15977f7f6/orderer/common/multichannel/chainsupport.go#L64-L100","documentation":"newChainSupport guard: the consensus type from the channel's shared config has no consenter registered in the consenters map passed to the registrar. The channel config names a consensus plugin (e.g. etcdraft, smartbft) that this orderer binary does not have registered.","triggerScenarios":"Thrown at orderer/common/multichannel/chainsupport.go:82 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Run an orderer binary that includes the requested consensus type","Change the channel's consensus type to one supported by this orderer"],"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"}