If a read method like readTx or others fail because not all of the data needed is in the buffer, they should set the reader position back to its position before it started, so that we can attempt during stream processing without having to make copies of the buffer reader every time. A simple try/catch should work and save the initial position at the start.