{"record":{"id":"2c35d31fcbfaae87","repo":"hyperledger/fabric","slug":"error-while-upgrading-idstore-format","errorCode":null,"errorMessage":"error while upgrading idStore format","messagePattern":"error while upgrading idStore format","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"core/ledger/kvledger/kv_ledger_provider.go","lineNumber":613,"sourceCode":"\n\tbatch := &leveldb.Batch{}\n\tbatch.Put(formatKey, []byte(dataformat.CurrentFormat))\n\n\t// add new metadata key for each ledger (channel)\n\tmetadata, err := protoutil.Marshal(&msgs.LedgerMetadata{Status: msgs.Status_ACTIVE})\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\titr := s.db.GetIterator(genesisBlkKeyPrefix, genesisBlkKeyStop)\n\tdefer itr.Release()\n\tfor itr.Error() == nil && itr.Next() {\n\t\tid := ledgerIDFromGenesisBlockKey(itr.Key())\n\t\tbatch.Put(metadataKey(id), metadata)\n\t}\n\tif err = itr.Error(); err != nil {\n\t\tlogger.Errorf(\"Error while upgrading idStore format: %s\", err)\n\t\treturn errors.Wrapf(err, \"error while upgrading idStore format\")\n\t}\n\n\treturn s.db.WriteBatch(batch, true)\n}\n\nfunc (s *idStore) createLedgerID(ledgerID string, metadata *msgs.LedgerMetadata) error {\n\tm, err := s.getLedgerMetadata(ledgerID)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif m != nil {\n\t\treturn errors.Errorf(\"ledger [%s] already exists with state [%s]\", ledgerID, m.GetStatus())\n\t}\n\tmetadataBytes, err := protoutil.Marshal(metadata)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn s.db.Put(metadataKey(ledgerID), metadataBytes, true)","sourceCodeStart":595,"sourceCodeEnd":631,"githubUrl":"https://github.com/hyperledger/fabric/blob/2736b63f8fd5932511d56fe68b7039d15977f7f6/core/ledger/kvledger/kv_ledger_provider.go#L595-L631","documentation":"Returned by upgradeFormat when iterating the genesis-block keyspace or writing the format-upgrade batch to the idStore levelDB fails. The idStore format migration (adding per-ledger metadata) aborted mid-way and the error is wrapped with this context.","triggerScenarios":"Thrown at core/ledger/kvledger/kv_ledger_provider.go:613 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the wrapped error for leveldb I/O or corruption issues","Free disk/permissions and re-run the upgrade; the batch is idempotent","Restore from backup if the store is corrupted"],"exampleFix":null,"handlingStrategy":"retry","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"}