Why Is My Epoxy Floor Bubbling?
Bubbles almost always trace back to one of two places: moisture vapor pushing up from the slab, or trapped air expanding as the concrete warms. Here’s how to tell which, and how to fix and prevent it.
Last updated August 21, 2026
Bubbles usually come from one of two places: moisture vapor pushing up from the slab, or trapped air expanding as the concrete warms during cure. A smaller share come from rolling technique or coating over a still-curing layer. Test the slab’s moisture before you coat, and apply on a stable or falling temperature. That alone prevents most bubbling.
Most likely causes
Moisture vapor from the slab
- Concrete is porous, so excess moisture vapor rising through an untested slab pushes through the curing film
- Most common on grade-level and below-grade slabs
- Fix: test RH or MVER before coating; apply a moisture vapor barrier if levels exceed your coating’s rated limit
Trapped air (outgassing)
- Concrete’s surface pores hold tiny air pockets that expand as the slab warms
- Shows up scattered across the floor, usually within the first few hours
- Fix: apply on a stable or falling temperature, never in direct sun on a warm slab
Rolling technique
- Aggressive back-rolling or the wrong nap roller whips air directly into the film
- Re-rolling an area that has begun to gel makes it worse
- Fix: use the correct nap (~3/8″ for standard epoxy), roll in one pass
Recoating too soon or over contamination
- Recoating before the previous layer finishes releasing solvent/moisture traps gas underneath
- Old sealers or curing compounds left on the slab do the same
- Fix: respect the recoat window on your TDS; confirm the slab is clean before priming
Telling moisture from outgassing
These are the two causes worth separating first, because one of them means testing the slab and specifying a barrier and the other means changing when you turn up. Four things tell them apart, and they usually agree with each other.
Where the bubbles are
- Moisture: clustered. Low spots, slab edges, cold joints, anywhere sitting over ground with no vapor barrier beneath it
- Outgassing: scattered fairly evenly across the whole floor, because every pore in the slab is doing the same thing at once
When they appeared
- Outgassing: early, usually within the first few hours, and tracking the slab warming up
- Moisture: slower and more persistent, and it keeps pushing for as long as there is a vapor drive under the film
What a recoat does
- Moisture: comes back, and comes back in the same places. That repetition is the strongest single signal you can get
- Outgassing: does not return if the second attempt is made on a stable or falling temperature
What the slab says
- Moisture: a relative humidity probe or a calcium chloride test returns a reading above your coating’s rated limit. This is the only one of the four that is a measurement rather than an inference
- Outgassing: the slab tests fine and the failure still happened, which points at the temperature curve on the day
Think moisture is the cause? Check if you need a vapor barrier
If the slab hasn't been tested, start there. A moisture reading above your coating's rated limit is the single most common root cause of bubbling.
Full result shows total volume, kits to order, and the Part A/B mix.
Open the live calculator →Testing the slab, and what the reading is for
A moisture test is not a pass or fail stamp. It returns a number, and that number decides whether you coat as specified, specify a barrier first, or stop and find out where the water is coming from. Our concrete moisture calculator reads a result against the bands that make that decision, and the barrier sizing guide covers what to do with each outcome.
In situ relative humidity probe
- Holes drilled to 40% of slab depth on a slab drying from one side, then left to equilibrate before reading
- Measures the moisture condition inside the slab rather than at its surface, which is why it is the method most coating data sheets now write their limits against
Calcium chloride, the MVER test
- A weighed dish sealed under a dome for a set period, measuring how much vapor comes out of the surface over time
- Reports in pounds per 1,000 ft² per 24 hours. It reads the surface rather than the depth, so the two tests answer slightly different questions
What is not a test
- Taping a sheet of plastic down overnight tells you something is wet. It does not give you a number, and no coating data sheet has a rated limit you can check it against
- Age is not a test either. A slab poured years ago sitting on wet ground with no barrier below it will still drive vapor forever
Worked example: sizing the barrier, and the six square feet that cost a kit
Take the same 540 ft² single garage at the calculator’s default 100 ft² per gallon, one coat. Net volume is 540 ÷ 100 = 5.4 gallons. Add the standard 10% waste allowance and you are buying against 5.94 gallons. In 3 gallon kits that rounds up to 2 kits, or 6 gallons, and you finish the job with 0.06 gallons to spare.
Look at how thin that is. The job needs 5.94 gallons and the order supplies 6, a margin of about 1%. Measure the same garage at 546 ft² instead of 540, which is a tape running six square feet long across a whole garage, and the requirement crosses 6 gallons and the order becomes 3 kits. Six square feet of measurement moves the barrier material by fifty percent, because kits do not come in halves.
This is not an argument for measuring loosely and rounding up. It is an argument for measuring the slab properly and running the numbers before you order, because on a floor this size the difference between a comfortable order and a second trip to the supplier is smaller than most people’s measuring error.
How to prevent it on the next job
- Test slab moisture (RH probe or calcium chloride) before every job, and never guess
- Apply on a stable or falling temperature, and avoid coating a slab that’s about to warm in direct sun
- Use the correct nap roller and avoid excessive back-rolling
- Respect recoat windows, and confirm the slab is free of old sealers or curing compounds first
Common mistakes
- Coating over an existing bubble. The gas that made it is still under there, and another layer just traps it deeper
- Treating a moisture failure as a technique failure. If it came back in the same places, no amount of rolling technique is going to change the outcome
- Testing one spot and calling the slab tested. Vapor drive varies across a floor, which is exactly why moisture bubbling clusters rather than spreading evenly
- Coating a garage in the morning with the door open to the sun. The slab warms all afternoon and pushes air up through the film for hours
- Ordering barrier material off a rough area figure. On a single garage, six square feet of measuring error is a whole extra kit
Frequently Asked Questions
Will bubbles in epoxy go away on their own?
No. Once the film has skinned over and cured, trapped bubbles are permanent. They need to be ground flat and spot-patched, not painted over. Coating over an existing bubble just traps the same gas under another layer.
How do I know if it’s moisture or trapped air?
Moisture-driven bubbling tends to cluster in low spots, near slab edges, or over an area with no vapor barrier below, and it often comes back in the same spots on a recoat. Outgassing from trapped air is usually scattered evenly across the whole floor and shows up in the first few hours as the slab warms, rather than concentrated in one area.
Can I fix bubbles without stripping the whole floor?
Small, isolated bubbles can be ground flat and spot-patched. Widespread bubbling across most of the floor usually means the topcoat needs to come off and be reapplied. The root cause (almost always moisture) needs to be tested and addressed first, or the same bubbling will happen again.
Does temperature really matter that much?
Yes. A rising slab temperature during cure is one of the most common and most preventable causes of bubbling. Air trapped in the concrete’s pores expands as the slab heats up (direct sun through a window, a garage door warming in the afternoon, HVAC kicking on) and pushes up through the still-wet film. Apply on a stable or falling temperature curve where possible.
How much vapor barrier material does a garage actually take?
Run it rather than guess, because the round up to whole kits is what decides it. A 540 square foot single garage at the calculator's default 100 square feet per gallon needs 5.4 gallons for one coat, or 5.94 gallons once the standard 10% waste allowance is added. In 3 gallon kits that is 2 kits, and you finish with about 0.06 gallons spare. That margin is roughly 1%, so measuring the same garage at 546 square feet instead pushes the requirement past 6 gallons and the order up to 3 kits. Six square feet of measuring error moves the barrier material by half again.
Is taping a plastic sheet to the slab a real moisture test?
Not one you can specify against. It will tell you that a slab is damp, which is useful as a first look, but it does not produce a number, and coating data sheets state their moisture limits as a figure from either an in situ relative humidity probe or a calcium chloride test. Without a number there is nothing to compare against the limit, so there is no defensible basis for deciding whether to coat, to apply a barrier, or to stop and investigate. Slab age is not a test either: an old slab sitting on wet ground with no vapor barrier beneath it will drive moisture indefinitely.

