{"record":{"id":"ffb55d12120577b1","repo":"hyperledger/fabric","slug":"failed-pulling-block-d-ffb55d","errorCode":null,"errorMessage":"failed pulling block %d","messagePattern":"failed pulling block (.+?)","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"orderer/consensus/smartbft/synchronizer_bft.go","lineNumber":274,"sourceCode":"\t\t\ts.Logger.Debugf(\"Fetched and committed config block [%d] from cluster\", seq)\n\t\t} else {\n\t\t\ts.Support.WriteBlockSync(block, nil)\n\t\t\ts.Logger.Debugf(\"Fetched and committed block [%d] from cluster\", seq)\n\t\t}\n\t\tlastPulledBlock = block\n\n\t\tprevInLatestDecision := s.lastReconfig.InLatestDecision\n\t\ts.lastReconfig = s.OnCommit(lastPulledBlock)\n\t\ts.lastReconfig.InLatestDecision = s.lastReconfig.InLatestDecision || prevInLatestDecision\n\t\ts.Logger.Debugf(\"Last reconfig %+v\", s.lastReconfig)\n\t\tseq++\n\t\tblocksFetched++\n\t}\n\n\ts.syncBuff.Stop()\n\n\tif lastPulledBlock == nil {\n\t\treturn nil, errors.Errorf(\"failed pulling block %d\", seq)\n\t}\n\n\ts.Logger.Infof(\"Finished synchronizing with cluster, fetched %d blocks, starting from block [%d], up until and including block [%d]\",\n\t\tblocksFetched, startHeight, lastPulledBlock.Header.Number)\n\n\treturn lastPulledBlock, nil\n}\n","sourceCodeStart":256,"sourceCodeEnd":282,"githubUrl":"https://github.com/hyperledger/fabric/blob/2736b63f8fd5932511d56fe68b7039d15977f7f6/orderer/consensus/smartbft/synchronizer_bft.go#L256-L282","documentation":"getBlocksFromSyncBuffer guard: the synchronization loop finished but lastPulledBlock is still nil — not a single block could be pulled from the sync buffer despite a non-empty target height. The message names the block sequence that was being fetched.","triggerScenarios":"Thrown at orderer/consensus/smartbft/synchronizer_bft.go:274 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check connectivity to the deliver sources (other consenters)","Retry synchronization when the cluster is healthier"],"exampleFix":null,"handlingStrategy":"retry","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"}