{"record":{"id":"be32e5b2c00d4f85","repo":"gastownhall/beads","slug":"s-of-s-reported-success-but-did-not-land-found","errorCode":null,"errorMessage":"%s of %s reported success but did not land (found assignee=%q status=%q, want %s) — server likely degraded; treat the %s as NOT applied","messagePattern":"(.+?) of (.+?) reported success but did not land \\(found assignee=%q status=%q, want (.+?)\\) — server likely degraded; treat the (.+?) as NOT applied","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/storage/dolt/claim_verify.go","lineNumber":210,"sourceCode":"func (s *DoltStore) verifiedClaimWrite(ctx context.Context, id string, post claimPostcondition, write func() error) error {\n\tif !s.serverMode || s.isActiveWisp(ctx, id) {\n\t\treturn write()\n\t}\n\terr := write()\n\tif err != nil {\n\t\treturn err\n\t}\n\tassignee, status, verr := s.readClaimState(ctx, id)\n\tif verr != nil {\n\t\treturn fmt.Errorf(\"%s of %s reported success but could not be verified (server degraded?): %w — re-read the issue before trusting the %s\",\n\t\t\tpost.op, id, verr, post.op)\n\t}\n\tif post.want(assignee, status) {\n\t\treturn nil\n\t}\n\tdoltMetrics.claimVerifyLost.Add(ctx, 1, metric.WithAttributes(\n\t\tattribute.String(\"op\", post.op)))\n\treturn fmt.Errorf(\"%s of %s reported success but did not land (found assignee=%q status=%q, want %s) — server likely degraded; treat the %s as NOT applied\",\n\t\tpost.op, id, assignee, status, post.desc, post.op)\n}\n","sourceCodeStart":192,"sourceCodeEnd":213,"githubUrl":"https://github.com/gastownhall/beads/blob/71377f276968b452ee607177637970a4ff888584/internal/storage/dolt/claim_verify.go#L192-L213","documentation":"verifiedClaimWrite re-read the issue after a successful write and found the claim state did NOT change as expected: the write reported success but did not land (assignee/status mismatch the postcondition). The code emits a claimVerifyLost metric and returns this error telling the caller to treat the operation as NOT applied.","triggerScenarios":"claimIssue or updateIssueChecked performs write(); readClaimState succeeds but returns assignee/status not matching post.want — e.g. the update was silently lost by a degraded Dolt server, overwritten by a concurrent writer, or the commit didn't actually persist.","commonSituations":"Concurrent agents racing to claim the same issue (another writer claimed first); a degraded Dolt server acknowledging but dropping writes; stale reads after a replication/federation hiccup.","solutions":["Treat the operation as not applied: re-read the issue and inspect the actual assignee/status values reported in the error","If another writer claimed the issue concurrently, do not blindly retry — coordinate or pick different work","Retry the claim/update once the server is healthy, then verify again","Check for concurrent writers/sync conflicts in the Dolt database if lost writes recur"],"exampleFix":"// before\nbd update bd-42 --claim\n// error: found assignee=\"other-agent\" status=\"open\"\n// after\nbd ready   # pick unclaimed work, or\nbd update bd-42 --claim   # only after confirming the issue is still unclaimed","handlingStrategy":"try-catch","validationCode":"// before claiming, confirm the issue is still claimable:\niss, err := store.GetIssue(ctx, id)\nif err == nil && iss.Assignee != \"\" && iss.Status == \"in-progress\" { /* already claimed */ }","typeGuard":null,"tryCatchPattern":"if err := store.ClaimIssue(ctx, id, assignee); err != nil {\n    if strings.Contains(err.Error(), \"did not land\") {\n        // treat op as NOT applied; re-read actual assignee/status from the\n        // error or via GetIssue, and only retry if still unclaimed\n    }\n}","preventionTips":["Coordinate concurrent agents so only one claims a given issue","Re-read the issue after a lost-write error instead of blindly retrying","Use bd ready / claim semantics to avoid double-claim races","Investigate recurring lost writes — they indicate server degradation or sync conflicts"],"tags":["dolt","lost-write","server-degraded","concurrency"],"backgroundTag":"lost-write-detected","analyzedSha":"71377f276968b452ee607177637970a4ff888584","analyzedAt":"2026-08-30T18:55:39.744Z","schemaVersion":2},"datasetVersion":"2026-08-30T23:17:21.991Z"}