{"record":{"id":"4c05d1271ff21403","repo":"dgraph-io/dgraph","slug":"namespace-d-no-tablet-found-for-s","errorCode":null,"errorMessage":"namespace: %d. No tablet found for: %s","messagePattern":"namespace: (.+?)\\. No tablet found for: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"dgraph/cmd/zero/tablet.go","lineNumber":116,"sourceCode":"\n\tknownGroups := s.KnownGroups()\n\tvar isKnown bool\n\tfor _, grp := range knownGroups {\n\t\tif grp == req.DstGroup {\n\t\t\tisKnown = true\n\t\t\tbreak\n\t\t}\n\t}\n\tif !isKnown {\n\t\treturn &pb.Status{Code: 1, Msg: x.ErrorInvalidRequest},\n\t\t\tfmt.Errorf(\"group: [%d] is not a known group\", req.DstGroup)\n\t}\n\n\ttablet := x.NamespaceAttr(req.Namespace, req.Tablet)\n\ttab := s.ServingTablet(tablet)\n\tif tab == nil {\n\t\treturn &pb.Status{Code: 1, Msg: x.ErrorInvalidRequest},\n\t\t\tfmt.Errorf(\"namespace: %d. No tablet found for: %s\", req.Namespace, req.Tablet)\n\t}\n\n\tsrcGroup := tab.GroupId\n\tif srcGroup == req.DstGroup {\n\t\treturn &pb.Status{Code: 1, Msg: x.ErrorInvalidRequest},\n\t\t\tfmt.Errorf(\"namespace: %d. Tablet: [%s] is already being served by group: [%d]\",\n\t\t\t\treq.Namespace, req.Tablet, srcGroup)\n\t}\n\n\tif err := s.movePredicate(tablet, srcGroup, req.DstGroup); err != nil {\n\t\tglog.Errorf(\"namespace: %d. While moving predicate %s from %d -> %d. Error: %v\",\n\t\t\treq.Namespace, req.Tablet, srcGroup, req.DstGroup, err)\n\t\treturn &pb.Status{Code: 1, Msg: x.Error}, err\n\t}\n\n\treturn &pb.Status{Code: 0, Msg: fmt.Sprintf(\"namespace: %d. \"+\n\t\t\"Predicate: [%s] moved from group [%d] to [%d]\", req.Namespace, req.Tablet, srcGroup,\n\t\treq.DstGroup)}, nil","sourceCodeStart":98,"sourceCodeEnd":134,"githubUrl":"https://github.com/dgraph-io/dgraph/blob/759e242be62c91f8d084da06ad0c8d21256d9c07/dgraph/cmd/zero/tablet.go#L98-L134","documentation":"MoveTablet looks up the tablet for the requested predicate (namespaced via x.NamespaceAttr) in Zero's membership state via s.ServingTablet. If no group is currently serving that predicate, there is nothing to move, so Zero returns an invalid-request Status with this message. This is a lookup failure against the live membership map, not a request-format error.","triggerScenarios":"Calling /moveTablet with a tablet (predicate) name that no Alpha group is serving: misspelled predicate name, predicate never created/written, or the tablet was recently dropped so membership no longer lists it.","commonSituations":"Typo in predicate name in a rebalance script; moving a predicate after it was dropped via DropAll/DropData; namespace mismatch — the predicate exists in namespace 0 but the request specified another namespace; freshly bootstrapped cluster where the predicate hasn't been assigned yet.","solutions":["List current tablets via /state on Zero and use the exact serving predicate name","Verify the predicate still exists (query the schema; it may have been dropped)","Check the namespace parameter matches the namespace the predicate actually lives in","Wait for/re-verify membership if the tablet was just created and membership hasn't propagated"],"exampleFix":"// before\ncurl 'localhost:6080/moveTablet?tablet=Person.name&namespace=0'  // never written, not serving\n// after\ncurl 'localhost:6080/state' | jq '.. | .tablet? // empty'        // confirm exact tablet name\ncurl 'localhost:6080/moveTablet?tablet=Person.name&namespace=0'","handlingStrategy":"validation","validationCode":"state=$(curl -s localhost:6080/state)\necho \"$state\" | jq -e --arg p \"$TABLET\" \\\n  '[.groups[].tablets // {} | keys[]] | index($p) != null' \\\n  || { echo \"tablet $TABLET is not being served\"; exit 1; }","typeGuard":"tablet_is_served() {\n  curl -s localhost:6080/state | jq -e --arg p \"$1\" \\\n    '[.groups[].tablets // {} | keys[]] | index($p) != null' >/dev/null\n}","tryCatchPattern":"resp=$(curl -s \"localhost:6080/moveTablet?tablet=$TABLET&namespace=$NS&dst_group=$DST\")\n[ \"$(echo \"$resp\" | jq -r .code)\" = 1 ] && echo \"rejected: $(echo \"$resp\" | jq -r .msg)\"","preventionTips":["Copy predicate names exactly from /state output, not from memory or schema only","Confirm the namespace matches where the predicate lives (default 0)","Check the predicate wasn't dropped (query the schema) before moving"],"tags":["dgraph","zero","tablet","predicate","membership"],"backgroundTag":"tablet-not-found","analyzedSha":"759e242be62c91f8d084da06ad0c8d21256d9c07","analyzedAt":"2026-09-01T14:42:12.034Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}