When QueuedTracking and BulkTracking are both active, QueuedTracking hooks Tracker.newHandler first and replaces the handler unconditionally.
Because PHP only populates $_GET/$_POST for form-encoded bodies, a bulk request sent with Content-Type: application/json leaves RequestSet empty by the time the handler runs. Queue::addRequestSet() silently discards it at the !$requests->hasRequests() guard.
Any application using the Bulk Tracking API alongside QueuedTracking loses all tracking data without any error signal.
When QueuedTracking and BulkTracking are both active, QueuedTracking hooks
Tracker.newHandlerfirst and replaces the handler unconditionally.Because PHP only populates
$_GET/$_POSTfor form-encoded bodies, a bulk request sent withContent-Type: application/jsonleavesRequestSetempty by the time the handler runs.Queue::addRequestSet()silently discards it at the!$requests->hasRequests()guard.Any application using the Bulk Tracking API alongside QueuedTracking loses all tracking data without any error signal.