hyperledger/fabric · error

cannot update ledger status, ledger [%s] does not exist

Error message

cannot update ledger status, ledger [%s] does not exist

What it means

Returned by idStore.updateLedgerStatus when no metadata record exists for the ledgerID being transitioned (e.g. pause/resume/commit of a channel that was never created or was already dropped). Status updates require an existing ledger entry.

Source

Thrown at core/ledger/kvledger/kv_ledger_provider.go:645

	metadataBytes, err := protoutil.Marshal(metadata)
	if err != nil {
		return err
	}
	return s.db.Put(metadataKey(ledgerID), metadataBytes, true)
}

func (s *idStore) deleteLedgerID(ledgerID string) error {
	return s.db.Delete(metadataKey(ledgerID), true)
}

func (s *idStore) updateLedgerStatus(ledgerID string, newStatus msgs.Status) error {
	metadata, err := s.getLedgerMetadata(ledgerID)
	if err != nil {
		return err
	}
	if metadata == nil {
		logger.Errorf("LedgerID [%s] does not exist", ledgerID)
		return errors.Errorf("cannot update ledger status, ledger [%s] does not exist", ledgerID)
	}
	if metadata.Status == newStatus {
		logger.Infof("Ledger [%s] is already in [%s] status, nothing to do", ledgerID, newStatus)
		return nil
	}
	metadata.Status = newStatus
	metadataBytes, err := proto.Marshal(metadata)
	if err != nil {
		logger.Errorf("Error marshalling ledger metadata: %s", err)
		return errors.Wrapf(err, "error marshalling ledger metadata")
	}
	logger.Infof("Updating ledger [%s] status to [%s]", ledgerID, newStatus)
	key := metadataKey(ledgerID)
	return s.db.Put(key, metadataBytes, true)
}

func (s *idStore) getLedgerMetadata(ledgerID string) (*msgs.LedgerMetadata, error) {
	val, err := s.db.Get(metadataKey(ledgerID))

View on GitHub (pinned to 2736b63f8f)

Solutions

  1. Verify the channel was fully joined/created before status updates
  2. Re-create the ledger if records were lost
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at core/ledger/kvledger/kv_ledger_provider.go:645 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/eead7954972147cb. Report an issue: GitHub.