Resubscribe request processing crashes, blocks cron job
Overview
When CiviCRM performs bounce processing, a resubscribe request email results in a call to CRM_Mailing_Event_BAO_Resubscribe::resub_to_mailing() which fails as that class does not exist. As the error occurs before the offending email is removed from the Inbox, subsequent invocations of "civicrm-api job.execute" continue to fail.
Reproduction steps
- Unsubscribe from an email list.
- Receive confirmation email with the message
You can re-subscribe by mailing mailto:bounce+e.[redacted]@mydomain.org
- Send an email to that address.
In addition, clicking the link in the email fails for the same reason.
Current behaviour
- Popup indicating "Cron not running".
- Mail processing (and presumably other scheduled jobs) not running.
- Drupal log entry:
Error: Class 'CRM_Mailing_Event_BAO_Resubscribe' not found in civicrm_api3_mailing_event_resubscribe_create() (line 29 of /var/www/clients/client1/web3/web/drupal/sites/all/modules/civicrm/api/v3/MailingEventResubscribe.php).
Expected behaviour
Contact resubscribed.
Environment information
- CiviCRM: 5.57.0
- PHP: 7.4.33
- CMS: Drupal 7.91
- Database: MariaDB 10.4
- Web Server: Apache 2.4
Comments
- Most recent bounce+e email we've received before this one was in 11/21, and that caused no issues.
- Marking this Confidential as it could be used in a type of Denial of Service attack, preventing CiviCRM sites from sending email/SMS.