Single opt-in form re-activates unsubscribed, bounced, and complained contacts #31

Closed
opened 2026-10-15 01:18:30 -04:00 by vmanne-poc · 0 comments
Owner

Bug. Submitting a single opt-in form for an existing contact sets the contact to ACTIVE whatever its current status. The public submit endpoint has no captcha or authentication, so anyone can re-subscribe an address that unsubscribed, hard-bounced, or marked our mail as spam. This conflicts with the code comment ("never silently re-activate") and with unsubscribe compliance.

Fix

  • Single opt-in only creates new contacts and updates the names of ACTIVE contacts.
  • UNSUBSCRIBED, BOUNCED and COMPLAINED contacts keep their status.
  • The response stays the same, so the form doesn't reveal anyone's status.
  • To come back, a person uses a double opt-in form, where the confirmation email proves they own the address.

Done when

  • An e2e test covers each status with single opt-in.
**Bug.** Submitting a single opt-in form for an existing contact sets the contact to ACTIVE whatever its current status. The public submit endpoint has no captcha or authentication, so anyone can re-subscribe an address that unsubscribed, hard-bounced, or marked our mail as spam. This conflicts with the code comment ("never silently re-activate") and with unsubscribe compliance. **Fix** - Single opt-in only creates new contacts and updates the names of ACTIVE contacts. - UNSUBSCRIBED, BOUNCED and COMPLAINED contacts keep their status. - The response stays the same, so the form doesn't reveal anyone's status. - To come back, a person uses a double opt-in form, where the confirmation email proves they own the address. **Done when** - An e2e test covers each status with single opt-in.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
vmanne-poc/Postak#31
No description provided.