ZeroMQ doesn't persist messages to a storage device, partly because that would be very inefficient, so you must handle this yourself.
If a downstream connection dies (loss of power, network failure, etc) then ZeroMQ will buffer the data until the connection is restored. However, buffer space is finite, and depending on your throughput, may not be at all sufficient. The company I work for needed to solve this problem, so we used a memory mapped file for buffering data, which works very well.
Your best option to avoid any kind of data loss is probably to take a similar route to what we did. Using request / reply is the best way to guarantee that a sent message was received downstream.
If data loss is mission critical then there are a bevy of UPS solutions that can help mitigate power outages, and as long as the program and the memory are kept alive, ZeroMQ is generally very good at handling error scenarios.