Surface tension plays a big part in fisheyeing. There are some additives that can be mixed into the epoxy that will reduce surface tension. Likewise, on wood, applying several coats of solvent thinned epoxy, instead of one coat of unthinned epoxy, seems to work well. Applying a thick coat of epoxy over a contaminated fisheye surface will bury the fisheye but expect the coating to peel away in the future. As a rule of thumb, always suspect some sort of surface contamination as the primary cause of fisheyeing.
Pinholes are similar but caused by expanding air bubbles under the still soft epoxy.
Coatings can fail for lots of other reasons. Adding a bit of solvent to a solvent based or solvent-free epoxy is something that most manufacturers would not officially approve of and something that might not work with all epoxies. With that amount of solvent, the epoxies no longer cure with a glossy finish. That said, no matter what the mix ratio is, some epoxies are more forgiving of mix ratio errors than others. One trick' of epoxy vendors with odd or very sensitive mix ratios is to sell calibrated pumps that disperse the epoxy components in exact amounts.