Bulk operations never fire Matrix/watcher notifications for status changes #67

Open
opened 2026-09-01 00:07:07 -04:00 by jared · 0 comments
Owner

Severity: High

models/BulkOperationsModel.php (bulk_close/bulk_status, ~lines 202-299) has zero references to NotificationHelper anywhere — confirmed by grep across the file and api/bulk_operation.php.

Compare to api/update_ticket.php:263-280 and api/ticket_status_api.php:168-196, which both call sendStatusChangeNotification() + notifyWatchers() on every status change.

Impact: The exact same logical transition (e.g. Open→Closed) silently produces zero notification to watchers/the Matrix room when performed via bulk actions, but does notify when done via the single-ticket edit page or the Bearer API. audit_log is written and the stats cache is invalidated correctly in all cases — only the notification step is missing for bulk operations. Watchers of tickets closed/updated in bulk get no Matrix alert at all.

Fix: Add sendStatusChangeNotification()/notifyWatchers() calls to the bulk status/close code paths in BulkOperationsModel.php, matching the single-ticket and Bearer API behavior (per issue on bulk audit_log shape, also make sure the {from, to} delta is available for the notification payload).

**Severity:** High `models/BulkOperationsModel.php` (bulk_close/bulk_status, ~lines 202-299) has zero references to `NotificationHelper` anywhere — confirmed by grep across the file and `api/bulk_operation.php`. Compare to `api/update_ticket.php:263-280` and `api/ticket_status_api.php:168-196`, which both call `sendStatusChangeNotification()` + `notifyWatchers()` on every status change. **Impact:** The exact same logical transition (e.g. Open→Closed) silently produces zero notification to watchers/the Matrix room when performed via bulk actions, but does notify when done via the single-ticket edit page or the Bearer API. `audit_log` is written and the stats cache is invalidated correctly in all cases — only the notification step is missing for bulk operations. Watchers of tickets closed/updated in bulk get no Matrix alert at all. **Fix:** Add `sendStatusChangeNotification()`/`notifyWatchers()` calls to the bulk status/close code paths in `BulkOperationsModel.php`, matching the single-ticket and Bearer API behavior (per issue on bulk audit_log shape, also make sure the `{from, to}` delta is available for the notification payload).
jared added the notificationspriority/high labels 2026-09-08 10:15:47 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: LotusGuild/tinker_tickets#67