the mistake was that in addition to do_read(), which I called at the end of the read_message() method, I also called it in another part of my code, which led to an error, the result: one do_read() is enough.