I'm calling nrf_drv_uart_rx_abort() in order to read partially captured input from UART in my event handler.
However, instead of receiving a NRF_DRV_UART_EVT_RX_DONE event (as per documentation) I'm getting a NRF_DRV_UART_EVT_ERROR.
I can see that both ERROR and RXTO events are set (and indeed, the data does sometimes look corrupt when looking in the rx buffer).
Why is this happening? I don't get any errors when I'm not calling nrf_drv_uart_rx_abort() - but I have to wait until my buffer is full, which doesn't work for my application (the data size is not known in advance).
I'm using UARTE, non-blocking, EASY DMA. My buffer size is 8 bytes (but I've tried various sizes - the problem exists at all sizes above 1). The problem exists when using both single and double buffering, and I've tried using higher prio interrupts for the UART event handler.