Steps to reproduce
If the process crashes during a user lookup in Service.Dequeue, the taken user is dropped. Similarly, if the user lookup fails, the user gets moved to the end of the queue.
Expected behavior
User shouldn't be dropped, and queue shouldn't be modified.
Actual behavior