We managed to reproduce the problem, and there is a bug.
But, it only appears under the circumstance that there are EyeX interaction objects that have not been cleaned up correctly in the client application before uninitializing EyeX. That is, when there are TX_HANDLE objects that have not been released using txReleaseObject (or TX_CONTEXTHANDLE not released by txReleaseContext).
So, you most likely have objects that are leaking in your application!
You can check this by checking the return value from
txShutdownContext(hContext, TX_CLEANUPTIMEOUT_DEFAULT, TX_FALSE);
If it returns TX_RESULT_OBJECTLEAKAGE then there are objects leaking. Then, please make sure you are using txReleaseObject for all TX_HANDLEs you are setting up. (See the MinimalGazeDataStream sample for an example how to do this.)
Our EyeX Engine team will fix the bug so that it will not be possible to end up in the inconsistent state you saw, even when objects have not been cleaned up correctly by the client application.