Skip to content

didit_with_email: a waiting join's status poll spends no KV write or list - #33

Merged
zo-el merged 6 commits into
mainfrom
fix/didit-read-no-kv-write
Oct 28, 2026
Merged

zo-el merged 6 commits into
mainfrom
fix/didit-read-no-kv-write

Conversation

@zo-el

@zo-el zo-el commented Oct 28, 2026

Copy link
Copy Markdown
Contributor

Unyt's Cloudflare account hit the Workers Free KV daily limit, and joins then failed with 503 "The service could not record the email." Each status poll of a waiting didit_with_email join spaced its Didit read as a KV event (a put and a list) and saved the whole session after every read: about 480 writes and 240 lists an hour per waiting person.

Didit reads are now spaced by a store claim, which the KV store keeps in the Workers Cache API, and a read is saved only when Didit's answer changed. A waiting person now costs one KV read per poll and no write or list.

Changelog

  • Joins no longer fail with "The service could not record the email" while others wait on identity verification.

zo-el added 6 commits October 27, 2026 18:46
…dit's answer changes

Didit reads are spaced by a new store claim. On KV it lives in the
Workers Cache API, so a waiting join's polls spend no KV write or list.
…pen interval

Cause: a claim keeps the interval it was taken with. An unchanged read
of a declined or expired session claimed the read key for 300 seconds,
and the attempt Continue started next shared that key, so its approval
went unseen for up to 5 minutes. Each state now claims under its own key.
@zo-el
zo-el merged commit 7af8129 into main Oct 28, 2026
1 check passed
@zo-el
zo-el deleted the fix/didit-read-no-kv-write branch October 28, 2026 00:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant