View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0018421||phpList 3 application||Bounce Management||public||22-11-16 05:50||09-05-17 21:13|
|Priority||normal||Severity||feature||Reproducibility||have not tried|
|Target Version||next minor|
|Summary||0018421: only link to bounce if it still exists in the database.|
|Description||Original subject: Bulk delete of bounces does not remove records from related tables|
The View Bounces page has commands to delete all bounces, all over 2 months old, etc.
The code that handles the delete, removes records from only the bounces table, not from the related user_message_bounce nor bounce_regex_bounce tables.
That causes problems on other pages, such as the User History page, which display records from the user_message_bounce table with a link to the non-existent bounce record. Clicking the link leads to a nasty fatal error "this bounce no longer exists in the database".
|Tags||No tags attached.|
||I did that on purpose. You don't want to remove the user_message_bounce entry, we still want to keep track of the fact that the campaign bounced to the subscriber, we just don't have the evidence any longer.|
I see. But that is inconsistent with deleting a single bounce, either on the bounce page or through a bounce rule. There is a function deletebounce() that removes rows from all three tables.
Also, there's a problem truncating the bounce table, when deleting all bounces. That resets the auto increment id field, which means the records on user_message_bounce can refer to an unrelated bounce.
For the user history page, I suggest linking to the bounce record only when it exists, to avoid the serious-looking error message. When the bounce doesn't exist then the id can be displayed as text maybe with an annotation such as "(deleted)".
I think that the bounce rule page has a similar issue with linking to a non-existent bounce.