{"record":{"id":"07db99ec4dc1cbab","repo":"hyperledger/fabric","slug":"error-unmarshalling-ledger-metadata","errorCode":null,"errorMessage":"error unmarshalling ledger metadata","messagePattern":"error unmarshalling ledger metadata","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"core/ledger/kvledger/kv_ledger_provider.go","lineNumber":670,"sourceCode":"\tmetadataBytes, err := proto.Marshal(metadata)\n\tif err != nil {\n\t\tlogger.Errorf(\"Error marshalling ledger metadata: %s\", err)\n\t\treturn errors.Wrapf(err, \"error marshalling ledger metadata\")\n\t}\n\tlogger.Infof(\"Updating ledger [%s] status to [%s]\", ledgerID, newStatus)\n\tkey := metadataKey(ledgerID)\n\treturn s.db.Put(key, metadataBytes, true)\n}\n\nfunc (s *idStore) getLedgerMetadata(ledgerID string) (*msgs.LedgerMetadata, error) {\n\tval, err := s.db.Get(metadataKey(ledgerID))\n\tif val == nil || err != nil {\n\t\treturn nil, err\n\t}\n\tmetadata := &msgs.LedgerMetadata{}\n\tif err := proto.Unmarshal(val, metadata); err != nil {\n\t\tlogger.Errorf(\"Error unmarshalling ledger metadata: %s\", err)\n\t\treturn nil, errors.Wrapf(err, \"error unmarshalling ledger metadata\")\n\t}\n\treturn metadata, nil\n}\n\nfunc (s *idStore) ledgerIDExists(ledgerID string) (bool, error) {\n\tkey := metadataKey(ledgerID)\n\tval, err := s.db.Get(key)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\treturn val != nil, nil\n}\n\nfunc (s *idStore) getActiveAndInactiveLedgerIDs() ([]string, error) {\n\treturn s.getLedgerIDs(\n\t\tmap[msgs.Status]struct{}{\n\t\t\tmsgs.Status_ACTIVE:   {},\n\t\t\tmsgs.Status_INACTIVE: {},","sourceCodeStart":652,"sourceCodeEnd":688,"githubUrl":"https://github.com/hyperledger/fabric/blob/2736b63f8fd5932511d56fe68b7039d15977f7f6/core/ledger/kvledger/kv_ledger_provider.go#L652-L688","documentation":"Returned by idStore.getLedgerMetadata when the stored metadata bytes for a ledger fail proto-unmarshaling into LedgerMetadata. The value was found in levelDB but is corrupt or in an unreadable format version.","triggerScenarios":"Thrown at core/ledger/kvledger/kv_ledger_provider.go:670 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Inspect the idStore leveldb for corruption","Re-run the format upgrade to rewrite metadata in the current encoding","Restore the idStore from backup"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2736b63f8fd5932511d56fe68b7039d15977f7f6","analyzedAt":"2026-09-04T08:52:36.465Z","contentChangedAt":"2026-09-04T08:52:36.465Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}