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
- Confirm the ledger/channel ID and the peer's fileSystemPath
- 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.