hyperledger/fabric · error

ledgerID [%s] does not exist

Error message

ledgerID [%s] does not exist

What it means

Returned by validateLedgerID during rollback-parameter validation when the block-storage directory for the given ledgerID does not exist on disk. The rollback command targeted a ledger (channel) that this peer/orderer does not maintain.

Source

Thrown at common/ledger/blkstorage/rollback.go:255

	conf := &Conf{blockStorageDir: blockStorageDir}
	ledgerDir := conf.getLedgerBlockDir(ledgerID)
	if err := validateLedgerID(ledgerDir, ledgerID); err != nil {
		return err
	}
	if err := validateTargetBlkNum(ledgerDir, targetBlockNum); err != nil {
		return err
	}
	return nil
}

func validateLedgerID(ledgerDir, ledgerID string) error {
	logger.Debugf("Validating the existence of ledgerID [%s]", ledgerID)
	exists, err := fileutil.DirExists(ledgerDir)
	if err != nil {
		return err
	}
	if !exists {
		return errors.Errorf("ledgerID [%s] does not exist", ledgerID)
	}
	return nil
}

func validateTargetBlkNum(ledgerDir string, targetBlockNum uint64) error {
	logger.Debugf("Validating the given block number [%d] against the ledger block height", targetBlockNum)
	blkfilesInfo, err := constructBlockfilesInfo(ledgerDir)
	if err != nil {
		return err
	}
	if blkfilesInfo.lastPersistedBlock <= targetBlockNum {
		return errors.Errorf("target block number [%d] should be less than the biggest block number [%d]",
			targetBlockNum, blkfilesInfo.lastPersistedBlock)
	}
	return nil
}

View on GitHub (pinned to 2736b63f8f)

Solutions

  1. Confirm the ledger/channel ID and the peer's fileSystemPath
  2. List available ledgers under filesystemPath/ledgers to find the correct ID
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at common/ledger/blkstorage/rollback.go:255 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/58f12eaab453cb84. Report an issue: GitHub.