953942694f
ZipKit::FileReader raises MissingEOCD for truncated, corrupted, or non-zip files. This exception is a direct StandardError subclass, not a subclass of InvalidStructure or ReadError, so it escaped as an unhandled job failure instead of being caught and surfaced to the user. Broaden the rescue in ZipFile::Reader#initialize to catch ReadError (parent of InvalidStructure), MissingEOCD, and UnsupportedFeature.