Pig on Tez scripts with union directly followed by HCatStorer have a problem due to HCatStorer not honoring mapreduce.output.basename and always using part. Tez sets mapreduce.output.basename to part-v000-o000 (vertex id followed by output id). With union optimizer, Pig uses vertex groups to write directly from both the vertices to the final output directory. Since hcat ignores the mapreduce.output.basename, both the vertices produce part-r-0000<n> and when they are moved from the temp location to the final directory, they just overwrite each other. There is no failure and only one of the files with that name makes it into the final directory.