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).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Severity: High
models/BulkOperationsModel.php(bulk_close/bulk_status, ~lines 202-299) has zero references toNotificationHelperanywhere — confirmed by grep across the file andapi/bulk_operation.php.Compare to
api/update_ticket.php:263-280andapi/ticket_status_api.php:168-196, which both callsendStatusChangeNotification()+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_logis 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 inBulkOperationsModel.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).