This crash occurs due to a change introduced in D8671 (which isn't yet in upstream, but is still an important fix for Phragment).
Basically the code would attempt to create a directory entry twice, because there were entries like:
- abc/def.txt
in the ZIP file, but it didn't yet have an entry for abc/. This code would add abc/ to the explicit paths to be created, but D8671 introduced a change whereby these preceding paths would automatically be created when abc/def.txt was updated or created. Because the added entry would result in an iteration like:
- abc/def.txt
- abc/
This would crash with a duplicate key exception, because abc/ had already been created in the abc/def.txt update.