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 server

View on GitHub (pinned to 2736b63f8f)

Solutions

  1. Inspect the logged cause (file missing/corrupt under the ledger's filesystem path)
  2. Restore or delete stale preResetHeight files and re-run reset/rollback
  3. 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.