{"record":{"id":"4c0dda8a2e39c4ab","repo":"hyperledger/fabric","slug":"ledger-s-already-exists-with-state-s","errorCode":null,"errorMessage":"ledger [%s] already exists with state [%s]","messagePattern":"ledger \\[(.+?)\\] already exists with state \\[(.+?)\\]","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"core/ledger/kvledger/kv_ledger_provider.go","lineNumber":625,"sourceCode":"\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)\n}\n\nfunc (s *idStore) deleteLedgerID(ledgerID string) error {\n\treturn s.db.Delete(metadataKey(ledgerID), true)\n}\n\nfunc (s *idStore) updateLedgerStatus(ledgerID string, newStatus msgs.Status) error {\n\tmetadata, err := s.getLedgerMetadata(ledgerID)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif metadata == nil {","sourceCodeStart":607,"sourceCodeEnd":643,"githubUrl":"https://github.com/hyperledger/fabric/blob/2736b63f8fd5932511d56fe68b7039d15977f7f6/core/ledger/kvledger/kv_ledger_provider.go#L607-L643","documentation":"Returned by idStore.createLedgerID when metadata already exists for the ledgerID — the channel was already created (or is under construction). It prevents double-creation, reporting the existing ledger's current status (active/pending).","triggerScenarios":"Thrown at core/ledger/kvledger/kv_ledger_provider.go:625 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Drop or archive the existing ledger before recreating it","If the existing ledger is desired, skip creation and open it instead"],"exampleFix":null,"handlingStrategy":"validation","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"}