hyperledger/fabric · error

cannot get current block hash

Error message

cannot get current block hash

What it means

Returned by createBlockDelivererCFT when LedgerInfo.GetCurrentBlockHash() fails after the height was obtained. The deliverer needs the hash to verify chain continuity from the resume point, so the query failure prevents deliverer creation.

Source

Thrown at core/deliverservice/deliveryclient.go:172

	}

	d.channelID = chainID

	go func() {
		d.blockDeliverer.DeliverBlocks()
		finalizer()
	}()
	return nil
}

func (d *deliverServiceImpl) createBlockDelivererCFT(chainID string, ledgerInfo blocksprovider.LedgerInfo) (*blocksprovider.Deliverer, error) {
	height, err := ledgerInfo.LedgerHeight()
	if err != nil {
		return nil, errors.Wrapf(err, "cannot get ledger height")
	}
	currentBlockHash, err := ledgerInfo.GetCurrentBlockHash()
	if err != nil {
		return nil, errors.Wrapf(err, "cannot get current block hash")
	}
	if height == 0 {
		return nil, errors.New("cannot create a block deliverer because height=0")
	}
	ubv, err := deliverclient.NewBlockVerificationAssistantFromConfig(
		d.conf.ChannelConfig, height-1, currentBlockHash, chainID, d.conf.CryptoProvider, flogging.MustGetLogger("common.deliverclient.blockverification"),
	)
	if err != nil {
		return nil, err
	}
	logger.Debugf("Created an updatable block verifier from ChannelConfig, height: %d,`%+v`", height, ubv)

	logger.Infof("Creating a CFT (crash fault tolerant) BlockDeliverer for channel `%s`", chainID)
	dc := &blocksprovider.Deliverer{
		ChannelID: chainID,
		BlockHandler: &GossipBlockHandler{
			gossip:              d.conf.Gossip,
			blockGossipDisabled: !d.conf.DeliverServiceConfig.BlockGossipEnabled,

View on GitHub (pinned to 2736b63f8f)

Solutions

  1. Verify ledger integrity and retry channel delivery start
  2. Investigate the wrapped ledger error for corruption or I/O faults
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at core/deliverservice/deliveryclient.go:172 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/e4e4d55ffaf33178. Report an issue: GitHub.