chances are high that opcua creates state variables that cannot be save() and load(), which is required in order to pass objects to process based pools. Process based pools execute in separate processes with their own address space, so variables cannot be simply passed into them and must instead go through an internal save/load cycle. opcua probably uses internal memory allocated in C++, and that memory does not get save()
What you need to do is create the opcua object on the worker.
