{"record":{"id":"f9563f55f9458db7","repo":"hyperledger/fabric","slug":"could-not-unmarshal-metadata-for-namespace-s-s","errorCode":null,"errorMessage":"could not unmarshal metadata for namespace %s/%s","messagePattern":"could not unmarshal metadata for namespace (.+?)/(.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"core/chaincode/lifecycle/serializer.go","lineNumber":394,"sourceCode":"}\n\nfunc FieldKey(namespace, name, field string) string {\n\treturn fmt.Sprintf(\"%s/%s/%s/%s\", namespace, FieldsInfix, name, field)\n}\n\nfunc (s *Serializer) DeserializeMetadata(namespace, name string, state ReadableState) (*lb.StateMetadata, bool, error) {\n\tmetadataBin, err := state.GetState(MetadataKey(namespace, name))\n\tif err != nil {\n\t\treturn nil, false, errors.WithMessagef(err, \"could not query metadata for namespace %s/%s\", namespace, name)\n\t}\n\tif metadataBin == nil {\n\t\treturn nil, false, nil\n\t}\n\n\tmetadata := &lb.StateMetadata{}\n\terr = proto.Unmarshal(metadataBin, metadata)\n\tif err != nil {\n\t\treturn nil, false, errors.Wrapf(err, \"could not unmarshal metadata for namespace %s/%s\", namespace, name)\n\t}\n\n\treturn metadata, true, nil\n}\n\nfunc (s *Serializer) DeserializeField(namespace, name, field string, state ReadableState) (*lb.StateData, error) {\n\tkeyName := FieldKey(namespace, name, field)\n\tvalue, err := state.GetState(keyName)\n\tif err != nil {\n\t\treturn nil, errors.WithMessagef(err, \"could not get state for key %s\", keyName)\n\t}\n\n\tstateData := &lb.StateData{}\n\terr = proto.Unmarshal(value, stateData)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"could not unmarshal state for key %s\", keyName)\n\t}\n","sourceCodeStart":376,"sourceCodeEnd":412,"githubUrl":"https://github.com/hyperledger/fabric/blob/2736b63f8fd5932511d56fe68b7039d15977f7f6/core/chaincode/lifecycle/serializer.go#L376-L412","documentation":"Returned by lifecycle Serializer.DeserializeMetadata when the stored metadata bytes for a namespace/key cannot be proto-unmarshaled into StateMetadata. The key existed (so data was committed) but its contents are corrupt or written by an incompatible lifecycle version.","triggerScenarios":"Thrown at core/chaincode/lifecycle/serializer.go:394 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Inspect the wrapped decode error and the raw state value","Repair or clear the corrupted lifecycle state key and re-commit the definition"],"exampleFix":null,"handlingStrategy":"try-catch","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"}