{"record":{"id":"5bc1c17f7bd3a378","repo":"dgraph-io/dgraph","slug":"while-parsing-the-drop-operation-v-got-q","errorCode":null,"errorMessage":"while parsing the drop operation %+v got: %q","messagePattern":"while parsing the drop operation %\\+v got: %q","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"worker/backup_manifest.go","lineNumber":200,"sourceCode":"\t\t}\n\tcase 2103:\n\t\tfor gid, preds := range m.Groups {\n\t\t\tparsedPreds := preds[:0]\n\t\t\tfor _, pred := range preds {\n\t\t\t\tns_attr, err := x.AttrFrom2103(pred)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.Errorf(\"while parsing predicate got: %q\", err)\n\t\t\t\t}\n\t\t\t\tparsedPreds = append(parsedPreds, ns_attr)\n\t\t\t}\n\t\t\tm.Groups[gid] = parsedPreds\n\t\t}\n\t\tfor _, op := range m.DropOperations {\n\t\t\t// We have a cluster wide drop data in v21.03.\n\t\t\tif op.DropOp == pb.DropOperation_ATTR {\n\t\t\t\tns_attr, err := x.AttrFrom2103(op.DropValue)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.Errorf(\"while parsing the drop operation %+v got: %q\",\n\t\t\t\t\t\top, err)\n\t\t\t\t}\n\t\t\t\top.DropValue = ns_attr\n\t\t\t}\n\t\t}\n\tcase 2105:\n\t\t// pass\n\t}\n\treturn nil\n}\n\nfunc readManifest(h UriHandler, path string) (*Manifest, error) {\n\tvar m Manifest\n\tb, err := h.Read(path)\n\tif err != nil {\n\t\treturn &m, errors.Wrap(err, \"readManifest failed to read the file: \")\n\t}\n\tif err := json.Unmarshal(b, &m); err != nil {","sourceCodeStart":182,"sourceCodeEnd":218,"githubUrl":"https://github.com/dgraph-io/dgraph/blob/759e242be62c91f8d084da06ad0c8d21256d9c07/worker/backup_manifest.go#L182-L218","documentation":"During a v21.03 (case 2103) manifest upgrade, DropOperations with DropOp == ATTR carry DropValue predicate strings that must be converted with x.AttrFrom2103. This error is thrown when such a drop-operation value cannot be parsed into the new namespaced attribute format.","triggerScenarios":"GetManifest on a 2103-version manifest whose DropOperations contain an ATTR entry with DropValue that AttrFrom2103 rejects — corrupt or foreign-format drop operation data in the manifest.","commonSituations":"Multi-version upgrades skipping intermediate releases; manifests edited or merged by tooling; drop operations recorded under a different Dgraph version format.","solutions":["Remove or fix the malformed DropOperation entry in the manifest.","Upgrade via intermediate Dgraph versions to convert the manifest properly.","Take a new backup with the current Dgraph version.","Compare the failing DropValue against expected 21.03 attribute format and correct it."],"exampleFix":"// before: old-format DropValue that fails conversion\n{\"DropOp\":\"ATTR\",\"DropValue\":\"friend\"}\n// after: re-take the backup with the target version\ndgraph backup --dst s3://bucket/new-backup","handlingStrategy":"validation","validationCode":"if m.Version == 2103 {\n    for _, op := range m.DropOperations {\n        if op.DropOp == pb.DropOperation_ATTR {\n            if _, err := x.AttrFrom2103(op.DropValue); err != nil {\n                return fmt.Errorf(\"bad DropValue %q: %v\", op.DropValue, err)\n            }\n        }\n    }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Follow the documented upgrade path between versions","Validate manifests with a dry-run read after upgrading binaries","Re-take backups with the new version if conversion fails"],"tags":["backup","manifest","upgrade","migration"],"backgroundTag":"manifest-version-upgrade-failed","analyzedSha":"759e242be62c91f8d084da06ad0c8d21256d9c07","analyzedAt":"2026-09-01T14:42:12.034Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}