-
Notifications
You must be signed in to change notification settings - Fork 183
Coordinator flakiness family: transient 5xx / dropped writes on lease-create, run-history-finish, and census registration #1561
Copy link
Copy link
Open
Labels
P1Urgent regression or broken agent/channel workflow affecting real users now.Urgent regression or broken agent/channel workflow affecting real users now.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:data-lossThis issue is about lost, corrupted, or silently dropped user/session/config data.This issue is about lost, corrupted, or silently dropped user/session/config data.impact:otherThis issue has meaningful maintainer-visible impact outside the owned taxonomy.This issue has meaningful maintainer-visible impact outside the owned taxonomy.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Description
Activity
Metadata
Metadata
Assignees
Labels
P1Urgent regression or broken agent/channel workflow affecting real users now.Urgent regression or broken agent/channel workflow affecting real users now.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:data-lossThis issue is about lost, corrupted, or silently dropped user/session/config data.This issue is about lost, corrupted, or silently dropped user/session/config data.impact:otherThis issue has meaningful maintainer-visible impact outside the owned taxonomy.This issue has meaningful maintainer-visible impact outside the owned taxonomy.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Type
Fields
Priority
None yet
Symptom 1: lease-create 500 (two occurrences)
crabbox run(managed Azure lease creation) occasionally fails before anybox is usably created, with the coordinator's
POST /v1/leasesreturningHTTP 500.
5llfol70h8qko73rc38qsti0. Response attributed to aDurable Object storage reset. No box was created, no lease was left
dangling, and our independent leak-alarm (which cross-checks Azure
directly, not just the coordinator's own bookkeeping) reported
cleanfor that window — so whatever happened inside the DO, it failed before
committing any state that could leak.
cbx_bb7fb1dce94b, witnessed directly in one of our owngate runs:
coordinator lease create returned uncertain result for cbx_bb7fb1dce94b; repeating token-bound POST: coordinator POST /v1/leases: http 500: error code: 1101, followed byabandoning uncertain coordinator create cbx_bb7fb1dce94b; recording durable cancellation. Same endpoint and HTTP status as occurrence 1. This one'sclient-side log surfaces Cloudflare error code 1101 rather than the
"Durable Object storage reset" wording occurrence 1's response carried, so
we can't independently confirm both share the identical proximate cause —
but both are transient 500s on the same write path with no lasting side
effect: this occurrence's client treated the create as uncertain and
recorded a durable cancellation rather than leaving a dangling lease.
Neither occurrence left the underlying system in a bad state — in both
cases the failure was caught before anything a caller would need to clean
up got committed. Occurrence 2's "repeating token-bound POST" before giving
up shows there is already some retry happening client-side ahead of the
durable-cancellation fallback; we don't have visibility into whether the
coordinator itself also retries this failure shape before returning the
500, or what the client-side retry ceiling is before it gives up (see "What
we're asking" below — if that ceiling is low, raising it might be enough on
its own).
Symptom 2: run-history "finish" returning HTTP 500 (one occurrence, cross-verified)
On box
cbx_aced84636bf1(2026-08-27, ~14:30Z), a routine gate run's clientaccepted the coordinator's release response, but the separate run-history
"finish" write failed:
The run's own timing record shows
leaseStopped: true— the lease itselfwas released; only the run-history bookkeeping write failed. We
independently verified the box's Azure resources tore down cleanly within
~15 minutes of this (zero residue), so nothing leaked. Net effect: "release
succeeded, history write didn't" — the same shape as Symptom 1 (a
transient 500 on a coordinator write), just on the finish path instead of
lease-create, and benign in outcome only because the underlying operation
had already completed before the write that failed.
Symptom 3: coordinator census gaps — provider-side resources with no coordinator record
During routine reconciliation work cross-checking the coordinator's own
inventory against live Azure-side resource state, two resources turned up
with no coordinator record at all:
run_3b5a7e618a22andcbx_2b400af9b810. Both were real, live provider-side artifacts thecoordinator's bookkeeping had zero visibility into — not stale, absent, as
if the registering write never landed or was lost outright. Observed the
same day as symptoms 1 and 2. We have not verified whether this shares a
root cause with the DO-storage-reset pattern above landing on a different
write path, or is a distinct defect — flagging it as observed, not asserting
a shared cause we haven't proven.
What we're asking
All three symptoms share a shape: a coordinator write (lease-create,
run-history-finish, or whatever write should have produced a census-visible
registration) transiently fails or silently drops state, without the
underlying operation actually being unsafe — in every case we could verify,
the real-world resource state ended up correct or was independently
recoverable. Durable Object storage resets are a known, transient,
Cloudflare-platform-level event — not a permanent failure, and not something
a caller can fix by changing what it sends. If these write paths don't
already retry internally on this failure signature before surfacing a 5xx
(or silently dropping the write, for Symptom 3) to the client, closing that
gap would remove a class of "gate reported something alarming for no reason
a human can act on" incidents for anyone relying on the managed coordinator
path. If retry already exists and we're seeing its exhausted-budget tail,
knowing the ceiling would help us decide whether to add our own outer retry
— today we recover via an external ~5-minute cooldown + relaunch (Symptom 1)
or by independently re-deriving true state (Symptoms 2-3), both of which
cost real wall-clock on every occurrence.