This is exactly what is happening. Channel will be synchronized only when you receive CallbackListener.onSuccess() callback. It is executed asynchronously, and your getMessages() call is executed before that callback fires.