The install command builds a list of file operations, but it never checks that every operation is performed. It's very common for a source file path to change, resulting in no match when iterating archive members.
One solution is to remove source files from the list when they are matched. An error should be raised if the installs list is not empty after processing the entire archive.