Can you please call CyU3PUsbSetEpNak API to keep the endpoint in NAK mode for 100us before the DMA channel is destroyed. And clear the NAK condition after the channel is set up once again.
You can do this with the help of code shown below.
/* Cypress: Keep the endpoint NAK-ed while it is being cleaned up. */
CyU3PUsbSetEpNak (EP_CONSUMER, CyTrue);
Once after the DMA channel is created
/* Cypress: We can release the endpoint from NAK mode now. */
CyU3PUsbSetEpNak (EP_CONSUMER, CyFalse);
Please let me know the result after following this.