Was reading through the ZMQ integration in concore.py and noticed write() is missing a return after the ZMQ send path.
In read() (around line 196), the ZMQ branch correctly does return message after receiving data, so it never hits the file-based path. But in write() (around line 268), after send_json_with_retry() succeeds, there's no return — execution just falls through into the file-based write logic below it.
What happens next is weird: the file-path construction block checks if port_identifier in zmq_ports again and builds a path like "../" + port_identifier + "/" + name, then tries to write to that path on disk. So every ZMQ write is also creating a stale file somewhere on the filesystem, or throwing an error silently.
Compare the two:
# read() — correct, returns after ZMQ
if isinstance(port_identifier, str) and port_identifier in zmq_ports:
...
return message # <-- exits here
# write() — falls through
if isinstance(port_identifier, str) and port_identifier in zmq_ports:
zmq_p.send_json_with_retry(val)
# no return here, keeps going into file write
Fix will be just adding return at the end of the ZMQ branch in write(), same pattern as read().