In the run_phase of push_sequencer, after m_safe_select_item() is called, the requested item is obtained from m_req_fifo using a peek(). After that, the item is not removed from the m_req_fifo. Hence, when a user is trying to send more than one transactions, there is no space in the m_req_fifo (which is one deep), to store the second request.
Solution: To add a m_req_fifo.get() at the end of the run_phase in push_sequencer to remove the item from the fifo after it is processed.