YARN-8990 and also introduced by YARN-8191 there is a race condition while moving an application. The pre-move check looks for the queue and when it finds the queue it progresses. The real move then retrieves the queue and does further check before updating the app and queues.
The move uses the retrieved queue object but the queue could have become empty while checks are performed. If the cleanup runs at that same time the app will be moved to a deleted queue and lost.