I see that you are resetting the pipe after the error condition from the host side. What do you do from the FX3 device when you receive a stall? You need to reset the DMA channel and the USB EPs once the error happens. This you can do using a clear feature request. We have handled the clear feature request in AN75779 firmware which you can take reference from. Also, you can refer the Cypress streamer application which uses asynchronous methods of transfer.
Thank you for answer!
Yes, we reset USB EPs. We already using asynchronous methods of transfer. Can you tell me the reason of this stall and how to avoid it?