If your program works locally but does't validate and you checked all other possible solution in this forum probably this one may help. Find a line in your code that looks like:
zipOutputStream.putNextEntry(new ZipEntry("new/" + Paths.get(fileName).getFileName()));
Change slash after "new" so it looks like:
zipOutputStream.putNextEntry(new ZipEntry("new\\" + Paths.get(fileName).getFileName()));
It could be that you use other operational system that the one where validation is performed. I only changed the slash and my code passed validation.