hyperledger/fabric · error
error loading prereset height: %s
Error message
error loading prereset height: %s
What it means
Logged (not returned) during peer startup in serve(): after obtaining ledger IDs, loading the preResetHeight files (written by 'peer node reset'/'rollback') failed for one of the ledgers. The pre-reset height lets the peer resume from a known height after a reset/rollback; the underlying error text is included via %s.
Source
Thrown at internal/peer/node/start.go:881
handleSignals(addPlatformSignals(map[os.Signal]func(){
syscall.SIGINT: func() { containerRouter.Shutdown(5 * time.Second); serve <- nil },
syscall.SIGTERM: func() { containerRouter.Shutdown(5 * time.Second); serve <- nil },
}))
logger.Infof("Started peer with ID=[%s], network ID=[%s], address=[%s]", coreConfig.PeerID, coreConfig.NetworkID, coreConfig.PeerAddress)
// get a list of ledger IDs and load preResetHeight files for these ledger IDs
ledgerIDs, err := peerInstance.LedgerMgr.GetLedgerIDs()
if err != nil {
return errors.WithMessage(err, "failed to get ledger IDs")
}
// check to see if the peer ledgers have been reset
rootFSPath := filepath.Join(coreconfig.GetPath("peer.fileSystemPath"), "ledgersData")
preResetHeights, err := kvledger.LoadPreResetHeight(rootFSPath, ledgerIDs)
if err != nil {
return fmt.Errorf("error loading prereset height: %s", err)
}
for cid, height := range preResetHeights {
logger.Infof("Ledger rebuild: channel [%s]: preresetHeight: [%d]", cid, height)
}
if len(preResetHeights) > 0 {
logger.Info("Ledger rebuild: Entering loop to check if current ledger heights surpass prereset ledger heights. Endorsement request processing will be disabled.")
resetFilter := &reset{
reject: true,
}
authFilters = append(authFilters, resetFilter)
go resetLoop(resetFilter, preResetHeights, ledgerIDs, peerInstance.GetLedger, 10*time.Second)
}
// start the peer server
auth := authHandler.ChainFilters(serverEndorser, authFilters...)
// Register the Endorser serverView on GitHub (pinned to 2736b63f8f)
Solutions
- Inspect the logged cause (file missing/corrupt under the ledger's filesystem path)
- Restore or delete stale preResetHeight files and re-run reset/rollback
- Verify filesystem permissions on the ledgersData directory
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at internal/peer/node/start.go:881 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/b0f6d98a242f4423.
Report an issue: GitHub.