Currently when the status is not ready, we allow user to submit new messages.
There need to be a better way to handle the new messages when submitting.
Idea: add a queue for new messages and store the submitted messages in the queue, process them one after another and process the edge case such as an error happened.