onQueueChange callback