Page MenuHomePhabricator

no email_checksum if update email too
Closed, ResolvedPublicBUG REPORT

Description

2026-05-08T09:35:02+00:00 [INFO] Message: {"checksum":"d8b11273ea51a7050c45b4569a3a2975_1778004862_168","contact_id":"70294132","email":"xxxx@icloud.com","country":"PL","language":"pl_PL","snooze_date":"2026-08-06","email_checksum":"70b0ab7d015106d881561f43ab0b807a49d09a7c9ec78f91892fcd5bfda72843","source_name":"DonationInterface","source_type":"emailpreferences","source_host":"frdata1002","source_run_id":83396,"source_version":"26f5451a429463f24abf461fdef3ffb0332c414d","source_enqueued_time":1778232723}
2026-05-08T09:35:03+00:00 [INFO] Message: {"checksum":"d8b11273ea51a7050c45b4569a3a2975_1778004862_168","contact_id":"70294132","email":"xxxx@icloud.com","country":"PL","language":"pl_PL","snooze_date":"2026-08-06","email_checksum":"70b0ab7d015106d881561f43ab0b807a49d09a7c9ec78f91892fcd5bfda72843","source_name":"DonationInterface","source_type":"emailpreferences","source_host":"frdata1002","source_run_id":83687,"source_version":"26f5451a429463f24abf461fdef3ffb0332c414d","source_enqueued_time":1778232782}
2026-05-08T09:35:03+00:00 [INFO] Message: {"checksum":"d8b11273ea51a7050c45b4569a3a2975_1778004862_168","contact_id":"70294132","email":"xxxxx@icloud.com","country":"PL","language":"pl_PL","snooze_date":"2026-08-06","source_name":"DonationInterface","source_type":"emailpreferences","source_host":"frdata1002","source_run_id":83399,"source_version":"26f5451a429463f24abf461fdef3ffb0332c414d","source_enqueued_time":1778232823}
2026-05-08T09:35:03+00:00 [ERROR] Error processing message, moving to damaged store.
Civi\WMFException\WMFException@/srv/org.wikimedia.civicrm/ext/wmf-civicrm/Civi/WMFQueue/EmailPreferencesQueueConsumer.php:40 (INVALID_MESSAGE failed to update e-mail preferences message:Missing required checksum in e-mail preferences message.
Source: array (
))
2026-05-08T09:35:03+00:00 [INFO] Message: {"checksum":"d8b11273ea51a7050c45b4569a3a2975_1778004862_168","contact_id":"70294132","email":"xxxxx@icloud.com","country":"PL","language":"pl_PL","snooze_date":"2026-08-06","source_name":"DonationInterface","source_type":"emailpreferences","source_host":"frdata1002","source_run_id":83396,"source_version":"26f5451a429463f24abf461fdef3ffb0332c414d","source_enqueued_time":1778232890}
2026-05-08T09:35:03+00:00 [ERROR] Error processing message, moving to damaged store.
Civi\WMFException\WMFException@/srv/org.wikimedia.civicrm/ext/wmf-civicrm/Civi/WMFQueue/EmailPreferencesQueueConsumer.php:40 (INVALID_MESSAGE failed to update e-mail preferences message:Missing required checksum in e-mail preferences message.
Source: array (
))

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript
AnnWF renamed this task from no email_checksum for snooze date epc update to no email_checksum if update email too.May 12 2026, 6:44 PM
AnnWF claimed this task.

We only need email_checksum when we update email and need to send verification email, for this case, changed email from A to B, then before B get verified and actually updated, donor try to snooze email A, and at this time email B get verified thus the queue message contains email A for snooze trigger a email diff (current primary B, but in this queue message is A) thus trigger the check for need email_checksum to prepare the template of verification email. Double checked civi and log, seems like donor already updated B snooze, thus this email diff not triggering email verification but failmail treated as works.
Steps for reproduce:
1: Donor change email from A to B
2: We send queue with email_checksum
3: We send verification email based on email_checksum to confirm B
4: Donor update snooze date to xxx
5: we send a snooze date queue without email_checksum
6: Donor confirm the verification email
7: We process queue under A for snooze date, but B is the new primary already, and this queue from step 5 have email A, thus queue think this is a different email update request, email_checksum needed for use to send verification email
8: failmail throw

This behavior is understandable, what we can do is quite this failmail just log it.

Change #1292061 had a related patch set uploaded (by Wfan; author: Wfan):

[wikimedia/fundraising/crm@master] use warning than exception if no checksum but email diff

https://gerrit.wikimedia.org/r/1292061

Change #1292061 merged by jenkins-bot:

[wikimedia/fundraising/crm@master] use warning than exception if no checksum but email diff

https://gerrit.wikimedia.org/r/1292061

XenoRyet set Final Story Points to 2.