Thanks for the explanation! I’ll test it in jupyter and let you know if the problem persists there.
I completely agree with you that the problem is about bad error messages. Maybe what is happening is that the child process communicates the exception and exits before the parent processes that response. Then if the parent tries to send anything to the child, it sees the broken pipe. Maybe, after getting an exception, the child should communicate it and wait for an abort message from the parent to be able to exit, instead of communicating, continuing the run, finishing and exiting.