Piping in a zip stream directly from archiver, results in a series of invalid signature errors. It seems as if all bytes in the stream are checked for a signature. On the other hand, the same zip gets extracted correctly when going through file streams first.
See @ctalkington's comments in archiverjs/node-archiver#91. Also, here's a test case.