You mix a batch of epoxy, roll it out, and for a few minutes the floor looks perfect. Then small round dimples start opening up in the wet coating, as if something is pushing the epoxy away. By the time you’ve stepped back to look, there are dozens of them.
Those are fish eyes. They are one of the most frustrating problems in floor coating, mostly because the cause was there before you ever opened the kit. This guide covers what fish eyes and craters are, what causes them, how to check your floor for silicone and other contaminants before you coat, and how to repair the damage if it’s already happened.
What Are Fish Eyes and Craters in Epoxy?
A fish eye is a small, round, crater-like spot where the wet epoxy has pulled away from the surface. It often looks like a tiny bullseye, with a ring of coating around a bare or thinly covered center. Craters are the same problem on a slightly larger scale: shallow, bowl-shaped depressions with raised edges.
They happen because of surface tension. Epoxy wants to flow out and wet the surface evenly. When it meets a spot contaminated with something that has a much lower surface energy, like silicone or oil, the epoxy can’t wet that spot. It retreats, and you get a hole.
Quick way to tell them apart from other defects:
- Fish eyes and craters: round depressions that appear while the coating is still wet, often within the first 10 to 30 minutes.
- Pinholes and bubbles: usually caused by air or moisture vapor rising out of the concrete. They tend to appear as tiny holes or blisters, and often show up when the slab is warming up. If that sounds like your problem, read our guide on testing concrete for moisture first.
- Delamination: the coating lifting in sheets after it cures. That’s a bonding problem, which we cover in why garage floor coatings delaminate.

What Causes Fish Eyes?
Silicone is the usual suspect, but it isn’t the only one. Anything that leaves a slick, low-energy film on the floor can do it.
Silicone
Silicone is tough to deal with because it is everywhere in a typical garage and it doesn’t stay on the surface. It can soak into the pores of the concrete. Common sources include:
- Spray lubricants and “multi-use” aerosol products
- Tire shine and dressing
- Car wax, polish and detailing sprays
- Silicone caulk and sealant
- Some mold release agents and cleaning products
- Hand lotions, sunscreen and some hair products (yes, really, from handprints or knees on the floor)
Oil, grease and wax
Motor oil, brake fluid, cooking grease, and wax from candles or floor polish can all cause the same repelling effect. Old oil stains are a bigger problem than they look, because the oil has often wicked deep into the concrete and keeps seeping back to the surface.
Previous sealers and coatings
If the slab was ever treated with a silicone-based sealer or a “water repellent” product, that can cause fish eyes years later. If you don’t know the history of the floor, assume it could be contaminated.
Dirty tools and equipment
Rollers, squeegees, mixing buckets and even gloves can carry contaminants. A roller that was used with a silicone product once can ruin a batch.
Poor mixing or incompatible products
Less often, a poorly mixed batch or putting a coating over an incompatible product (for example, a solvent-based material over a damp, uncured layer) can create similar defects. If your floor is clean and the problem appears in only one area, check your mixing technique and batch consistency.
How to Check for Silicone Contamination Before You Coat
This is the part most people skip, and it’s the cheapest way to avoid a ruined floor. None of these tests is perfect on its own, so use more than one.
1. Do a history check
Ask the questions first. Has anyone detailed cars in this garage? Was the slab ever sealed? Is there caulk or lubricant spray stored nearby? Has anything been spilled? Many silicone problems can be predicted from the answers alone.
2. Try the water bead test
After cleaning and grinding, flick a few drops of water onto several spots. On a properly prepared, clean surface, water should soak in or spread out within a short time. If it beads up and sits there like water on a waxed car, something is repelling it. Test several areas, especially where cars park and near workbenches.
3. Do a test patch with the actual epoxy
This is the most reliable method. Mix a small amount of your coating and apply it to a patch of floor, about a foot square, in the areas you’re most worried about. Let it sit for at least 30 minutes and watch. If it fish-eyes in the test patch, you’ve found the problem without wrecking the whole floor. This is also a useful moment to see how the epoxy behaves in your actual temperature and humidity.
4. Use a solvent wipe
Wipe a section with a clean white rag and a suitable solvent. If the rag picks up yellow, brown or greasy residue, there is contamination. Remember that a clean rag doesn’t prove silicone is absent, because silicone can be invisible.

How to Fix Fish Eyes: Two Scenarios
If the epoxy is still wet
You have limited options, and none are great. If only a few small spots appeared, you can sometimes back-roll lightly and see whether the coating flows into them. If fish eyes keep spreading, stop. Pushing more material into a contaminated surface usually makes it worse. Many installers let the coat cure and fix it afterward rather than fight it in real time.
Some people add a commercial “fish eye eliminator” additive to the mix. These products are typically silicone-based and work by lowering the surface tension of the coating so it can wet over contaminants. They can help, but use them carefully. Follow the manufacturer’s dosage, test on a small area first, and be aware that overuse can cause adhesion problems for later coats.
If the epoxy has cured (the reliable repair)
- Let the coating fully cure. Don’t sand tacky epoxy. Follow the cure time on your product’s data sheet.
- Grind or sand the defects flat. Use a diamond grinder or sanding screen to remove the raised edges and abrade the whole surface. For deep craters, grind below the bottom of the defect. If you’re unsure which prep method suits your floor, see our comparison of diamond grinding vs shot blasting.
- Remove the contamination, not just the damage. This is the step people miss. If silicone is still in the concrete, the next coat will fish-eye too. Grind more aggressively in the affected areas to open fresh concrete.
- Vacuum thoroughly and clean. Remove all dust, then wipe with a suitable solvent using clean rags. Switch to a fresh rag often so you aren’t just spreading contamination around.
- Fill any deep craters. Use an epoxy filler or patching compound and sand it flush once cured.
- Test again. Apply a small patch of coating before committing to the whole floor.
- Recoat. Apply a thin, well-mixed coat. If the contamination is severe, consider a first coat designed to be tolerant of surface contaminants, and ask the manufacturer about compatibility.
Important: solvent choice, dosage of additives, and recoat windows vary by product. Always check the technical data sheet for your specific epoxy, and ask the manufacturer’s support line if you’re unsure.
How to Prevent Fish Eyes Next Time

- Keep all silicone sprays, tire shine, and wax out of the work area for days before coating.
- Remove oil and grease stains early, and grind deeply where stains are heavy.
- Avoid lotions and sunscreen when working on the bare slab, and wear clean gloves.
- Use new or dedicated rollers, buckets and mixing sticks.
- Always do a water bead test and a test patch.
- Avoid using silicone caulk near the floor during prep. If you need to seal joints, use a product recommended by your coating manufacturer.
- Don’t coat in poor conditions. Very cold floors, high humidity and direct drafts can make surface problems worse.
Frequently Asked Questions
Can I just roll another coat over fish eyes?
Usually not. If the contamination is still in the surface, the new coat will repel again. Grind the defects out and remove the source first.
Will acetone remove silicone from concrete?
Solvents can remove surface residue, but they often can’t pull silicone out of the pores of concrete. Mechanical removal, meaning grinding, is the more dependable approach.
Do fish eyes mean my epoxy is bad?
Rarely. In most cases the product is fine and the surface is the problem. Defective batches exist, but contamination is far more common.
Are fish eyes the same as bubbles?
No. Fish eyes are caused by surface contamination. Bubbles and pinholes typically come from trapped air or moisture vapor rising through the concrete.
How long should I wait before recoating a repaired floor?
Follow your product’s recoat window. Sanding or grinding the old coat gives the new one a mechanical bond, but the timing and cleaning requirements still depend on the specific product.
Final Thoughts
Fish eyes feel like bad luck, but they almost always have an identifiable cause, and that cause was on the floor before the coating went down. A few minutes with a water test and a small patch of epoxy can save you from a full day of grinding and recoating. If you do end up with a defective floor, don’t rush the fix. Cure it, grind it, clean it, test it, and then recoat.
Have you run into fish eyes on your own floor? Tell us what happened in the comments or send us a message, and we’ll help you work out the cause.

