Say out loud when a registrant is left with no verification token

ChoreSecurityService
Shipped
September 4, 2026 at 11:56 PM UTC
Author
Kamo
Commit
2303207

The register endpoint caught a failed verification send and logged warn(e.getMessage()). For the fault it kept hitting — EmailService raising a Yugabyte read restart and answering 500 — that message read "Transactional send failed" and named neither the service nor the statement, so weeks of registrants reaching /verification with no email left nothing in this service's log worth grepping. Diagnosing it meant going to EmailService's pod and finding the 40001. Now ERROR with the stack, and it says what the state actually is: the account has no verification token and can only proceed via Resend. sendVerificationEmail is @Transactional over both the token row and the outbound call, so a failed send takes the token with it — deliberate, since a code nobody was ever mailed is worse than none, but it means the registrant is looking at a screen that says an email is on its way while holding nothing to type. The comment above the second call site claimed the send fires after the transaction commits. It does not, and never did; corrected rather than left to mislead the next reader. The fault itself is fixed in EmailService (0220d6a), not papered over here.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing