Hi Kevin,
I guess there are race conditions. I sporadically see issues in simulation too:
.../build$ ./streaming.fpga_sim
Running on device: SimulatorDevice : Multi-process Simulator (aclmsim0)
terminate called after throwing an instance of 'sycl::_V1::runtime_error'
what(): Enqueue process failed. -59 (PI_ERROR_INVALID_OPERATION)
Aborted (core dumped)
Please check the host pipe write command in your code. Modify the core to not accept data at it's input for a longer time (backpressure condition). Then the host will throw an error when the pipe is full but the host write is not handling this properly.
To reproduce, just modify line 57:
57 // while (!end_of_packet) {
57 while (end_of_packet) {
58 // Read in next pixel
As the reproducer is a bit of artificial, I see this issue in our production design too.
I hope this helps you to find the root cause of these problems!
Regards, Ric.