Please check whether you are receiving CYU3P_USBEP_SS_RESET_EVT.
In order to check this, please register for CyFxApplnEpCallback as shown in the GpifTousb example (C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\firmware\basic_examples\cyfxgpiftousb)
You need to perform an endpoint specific recovery when the CYU3P_USBEP_SS_RESET_EVT event is received. The recommended recovery procedure is to stall the endpoint and then stop and restart the DMA path when the CLEAR_FEATURE request is received. Please refer to GpifToUsb example project for the implementation of this sequence.
Note that the host application should detect the STALL and issue clear feature.
if (evtype == CYU3P_USBEP_SS_RESET_EVT)
/*Stall the endpoint on which error occurred*/
CyU3PUsbStall (epnum, CyTrue, CyFalse);
if ((bTarget == CY_U3P_USB_TARGET_ENDPT) && (bRequest == CY_U3P_USB_SC_CLEAR_FEATURE)
&& (wValue == CY_U3P_USBX_FS_EP_HALT))
CyU3PUsbSetEpNak (epnum, CyTrue);
CyU3PDmaChannelSetXfer (&glDmaChHandle, 0);
CyU3PUsbStall (wIndex, CyFalse, CyTrue);
CyU3PUsbSetEpNak (epnum, CyFalse);
isHandled = CyTrue;