If a queue randomly "misses" a queued element, it sounds like you have a 2nd consumer.
I would also start looking on the enqueue end. My guess is that the code has changed such that the enqueue is not happening on this queue.
I checked up on my enqueues and I found that one of them is enqueuing an empty element. This is the very first enqueue in the program which happens immediately after the queue is obtained. It is supposed to enqueue the string 'initialize' which will set a state when it gets dequeued. However, when I stick the queue status block in front of the dequeue, I see a single element enqueue but that element is an empty set (' '). The 'initialize' string (a constant shoved into an enqueue block) is missing at the queue status block and the dequeue block. In this case, I'm getting Error 1: Invalid message string.
Edit: The 'initialize' enqueue has worked before, so the failure seems inconsistent.
Also, a note about posting my code here. I have a local network I can back up my code to. I just can't put it on the internet.
It's so frustrating when code does what you tell it to do, and not what you want it to do. Apparently something is occasionally firing blanks. Maybe there's an error being passed along causing part of your code not to execute, sending default values instead? Maybe you are inadvertently swallowing that error somewhere so you never know about it?