HeaterScoutWATER HEATER REPAIR Browse fixes

TANKLESS · COMBUSTION · ERROR CODE

Tankless Air-Fuel Ratio Codes: Combustion Faults Explained

Updated Aug 2026·10 min read·Difficulty: call a pro

A tankless heater that throws a Rinnai 10, a Navien E110, or a Noritz 90 is not complaining about water temperature. It is refusing to burn gas because it does not trust the fire. Every one of these codes lives in the same family: the control board decided the air-fuel mix is wrong, or that it cannot prove exhaust is leaving the building, so it locks out the burner. There is no lab sensor measuring an actual ratio. The board infers it from the fan, a pressure switch, and the flame rod, and when those disagree with a safe burn, you get a combustion fault. Of all the codes a tankless can post, this is the one where the failure mode is carbon monoxide, so it earns real caution.

Air-fuel / combustion codes across the major US brands
BrandCodeWhat the board is reporting
Rinnai10Air supply or exhaust blockage; the fan cannot prove airflow
Rinnai12Flame failure; flame lit but the signal dropped or never held
NavienE110Abnormal combustion air pressure or a blocked exhaust
NavienE030Exhaust or air-pressure fault; some models, exhaust overheat
NavienE003 / E012Ignition failure / flame loss during operation
Noritz10Combustion abnormality; an early warning before 90
Noritz90Airflow or combustion abnormality; fan running above normal
1

Quick answer

An air-fuel ratio code means the control board judged combustion unsafe and shut the burner off. It is not reading a literal ratio; it infers a bad burn from the combustion fan, a pressure switch that proves airflow, and the flame rod. The usual causes, most common first: a blocked intake or exhaust, a dirty burner or flame rod, low or unsteady gas pressure, and a dip-switch or gas-type mismatch. Clear any vent blockage and power cycle. If it returns, this is the one code family to hand to a licensed tech with a combustion analyzer, because the failure mode is carbon monoxide.

Icons infographic explaining the tankless air-fuel ratio and combustion error-code family, showing blocked airflow, setup or fuel mismatch, and a dirty burner or flame rod as the causes
The combustion-code family, cross-brand. A choked vent, a fuel or dip-switch mismatch, or a dirty burner all leave the air-fuel mix off spec and trip the code.

Air-fuel ratio code

A shorthand for any tankless error where the control board decides combustion is off spec and locks out the burner. The unit does not measure an air-fuel ratio directly. It proves airflow with a combustion fan and a pressure switch, senses the flame by ionization current on the flame rod, and on some models watches flue temperature. A starved, over-gassed, or unstable burn fails one of those checks. Rinnai reports it as code 10 or 12, Navien as E110, E030, E003, or E012, Noritz as code 10 or 90. The category is the same across brands: the fire is wrong, so the gas valve closes.

Why brands split it into airflow and flame codes

A combustion problem shows up in two places, and most brands give each its own code. The first is before the flame even lights. The combustion fan spins up and a pressure switch confirms air is moving freely through the intake and out the exhaust. If that proof fails, the unit will not ignite at all. That is Rinnai code 10 and Navien E110, the airflow side. The second is once the burner is lit. The flame rod carries a tiny ionization current that only flows when a real flame bridges it to ground. If that current drops or never appears, the board reads flame failure and closes the gas valve within a second or two. That is Rinnai code 12 and Navien E003 or E012, the flame side. Noritz folds both into code 10 as a warning and code 90 as the hard fault, and it adds a tell: on Noritz the fan runs above its normal speed to fight a restriction, and the higher it has to push, the worse the airflow problem.

Reading a new install versus an old unit

The single most useful question is how long the unit ran before the code appeared. The answer points you at completely different causes.

Code on a new install

  • Venting is the first suspect: too long, too many elbows, wrong diameter, or wrong termination.
  • Gas line undersized or the regulator sagging under demand, starving the burner at high fire.
  • Dip switches not set for elevation, pipe size, or vent length on the specific model.
  • Gas-type mismatch: the unit set for natural gas but plumbed to propane, or the reverse.
  • Altitude: thinner air derates combustion roughly 4 percent per 1000 feet above 2000 feet.

Code on a unit that ran fine for years

  • A dirty burner after years without service, disrupting a clean flame.
  • A fouled flame rod reading a false no-flame from oxide buildup.
  • Partial vent blockage: snow, a nest, leaves, or debris at the termination.
  • A combustion fan slowly weakening, tripping the airflow proof more often.
  • Scale and neglect generally, since a unit that never got a flush rarely got a vent check either.

What a combustion analysis actually finds

A code tells you the burn is wrong. It does not tell you why. That is what a combustion analyzer is for. The tech puts a probe in the flue while the unit fires at high input and reads two numbers that describe the real air-fuel picture: oxygen and carbon monoxide. A healthy residential tankless burns clean, with CO in the low single or double digits and O2 in the band the manufacturer expects for the fuel. A burner that is starved for air, or over-gassed, shows CO climbing past 100 parts per million and excess air out of range. Those readings separate a venting problem from a gas-pressure problem from a dirty burner, which no code can do on its own. Alongside the analyzer the tech puts a manometer on the manifold to confirm gas pressure under load, and checks that the dip switches match the fuel, the elevation, and the vent length. Skipping that step and just adjusting the gas by feel is how a unit ends up running dirty and quietly making CO.

Does altitude really change the code?

Yes, and it catches people who move a unit or install at elevation without setting it up for the site. Thinner air at altitude carries less oxygen, so a burner tuned for sea level runs richer and dirtier the higher you go, roughly a 4 percent BTU derate per 1000 feet above 2000 feet on many models. Manufacturers handle this with high-altitude dip-switch settings or a specific model, which lean the mixture back to spec. If a unit installed at 6000 feet was never set for altitude, it can trip a combustion code under load even with clean venting and correct gas pressure, because the mixture is simply off for that air.

A technician holding a combustion analyzer probe in the flue of a tankless water heater, reading oxygen and carbon monoxide to diagnose an air-fuel ratio fault
The only real diagnosis: a combustion analyzer in the flue reading O2 and CO while the unit fires at high input. Rising CO past 100 ppm means the air-fuel mix is off.

Where the homeowner line sits

This is the code family where the safe DIY list is short and the reason to stop is real. You can and should clear both vent terminations of snow, ice, leaves, and nest material, using a soft brush and never poking metal into the pipes. Trim landscaping back about a foot from the vent. Confirm the gas is on at the meter and the unit, and that nothing is stacked against the intake. Check that the vent is not crushed, sagging, or disconnected. Descale and clean the inlet filter on schedule. After clearing an obvious blockage, power cycle the unit and watch whether the code returns. That is the entire homeowner scope. Do not adjust gas pressure, do not change dip switches, do not convert fuel type, and do not clean or move the flame rod or burner unless you own a combustion analyzer and know how to read it. The failure mode here is incomplete combustion and carbon monoxide, so a wrong adjustment is not just a nuisance, it is a hazard. If the code comes back after the obvious fixes, hand it to a licensed tech.

Keeping combustion codes from coming back

The durable fix is almost always upstream of the burner. Get the venting right to the manufacturer spec: correct diameter, length within the allowed run for your elbow count, and terminations clear of snow lines and prevailing wind. Have the gas line and regulator sized for the unit at full fire, because a combustion code that only appears when two fixtures run is usually a pressure problem, not a dirty one. If you are at altitude or on propane, confirm the dip switches and orifice match the site, and have a combustion analysis done after any fuel conversion. Then service the unit yearly: pull and clean the burner and flame rod, descale the exchanger, and clear the vent. A unit that gets an annual combustion check rarely surprises you with a 10, an E110, or a 90 on the coldest morning of the year, and if the numbers are drifting, a tech catches it before it becomes a lockout or a CO problem.

Frequently asked

What is an air-fuel ratio error code on a tankless water heater?

It is any code where the control board decides combustion is not clean and safe, then shuts the burner down. The unit does not literally measure an air-fuel ratio with a lab sensor. It infers a combustion problem from a few signals: the combustion fan spinning up and a pressure switch proving air is moving, the flame rod sensing a steady flame by ionization current, and in some models a flue temperature limit. When any of those says the burn is starved, over-gassed, or unstable, the board posts a combustion or airflow fault. Different brands name it differently. Rinnai code 10 is air supply or exhaust blockage and code 12 is flame failure. Navien E110 is abnormal combustion air pressure. Noritz code 90 is an airflow or combustion abnormality. They all mean the same category of problem: the fire is wrong.

What are the air-fuel ratio codes for each brand?

Rinnai splits it: code 10 is air supply or exhaust blockage, where the fan cannot prove airflow, and code 12 is flame failure, where the flame lit but the signal dropped or never held. Navien uses E110 for abnormal combustion air pressure or a blocked exhaust, E030 for an exhaust or air-pressure and venting fault, which on some models is also an exhaust overheat above about 149 degrees, E003 for ignition failure, and E012 for flame loss. Noritz uses code 10 as an early combustion-abnormality warning and code 90 as the airflow or combustion abnormality, which trips when the fan has to run above normal to compensate for restricted air. The exact display text varies by model, so check the code list on the sticker inside the front cover or the manual for your unit.

What causes a combustion or air-fuel ratio code?

In rough order of how often they show up: a blocked or restricted intake or exhaust, which includes snow over a sidewall vent, a nest, a crushed flex line, or too much pipe length for the model. A dirty burner or a fouled flame rod after years without service. Low or unsteady gas pressure under demand, which starves the flame when two fixtures run. A gas-type or dip-switch mismatch, where the unit is set for natural gas but fed propane, or the dip switches are not set for the elevation or vent length. Altitude, because thinner air changes the mixture. A failing combustion fan or pressure switch. On a brand-new install throwing the code the day it fires, suspect venting, gas pressure, and dip switches first. On an older unit, suspect a dirty burner and vent.

Can I fix an air-fuel ratio code myself?

Some of it, yes. Clearing snow, leaves, or nest material off both vent terminations is safe and often the whole fix. Confirming the gas is on, the vent is not crushed or sagging, and nothing is stacked against the intake is homeowner work. Descaling and cleaning an inlet filter are fine. Where you stop is the combustion side. Adjusting gas pressure, changing dip switches, converting fuel type, cleaning or replacing the burner or flame rod, and any work that needs a combustion analyzer belong to a licensed tech. A combustion code is the one family where guessing is genuinely dangerous, because the failure mode is incomplete combustion and carbon monoxide. Clear the obvious blockage, power cycle, and if it comes back, call a pro rather than start adjusting the gas.

How is a combustion problem actually diagnosed?

With a combustion analyzer, which is a probe in the flue that reads oxygen and carbon monoxide while the unit fires at high input. Those two numbers tell the tech the real air-fuel picture. A clean burn on a residential tankless shows low single-digit CO and O2 in the expected band for the fuel. A starved or over-gassed burner shows CO climbing well past 100 parts per million and excess air out of range. The analyzer separates a venting problem from a gas-pressure problem from a dirty burner, which a code alone cannot do. The tech also checks manifold gas pressure with a manometer, confirms the dip switches match the fuel, elevation, and vent length, and inspects the burner and flame rod. Guessing without those readings is how a unit ends up running dirty and making CO.

Why does my combustion code keep coming back?

Because the real cause is still there. The most common repeat is a partial vent restriction that only chokes airflow at high fire, so the unit runs fine on one faucet and trips when a second opens. A long or undersized vent run, or too many elbows, does the same thing and no cleaning will fix it, the vent has to be corrected to the manufacturer spec. A gas line that is undersized or a regulator that sags under load drops pressure only when demand is high, which reads as intermittent flame failure. A slowly dying combustion fan trips the code more often as it weakens. And a dip-switch or fuel-type mismatch never self-corrects. If the code returns after you cleared the obvious blockage, the answer is a combustion analysis and a manometer, not another reset.

Is a tankless air-fuel ratio code dangerous?

This is the code family to take seriously. The whole point of the combustion and airflow checks is to prevent the unit from burning gas when it cannot vent the exhaust or cannot hold a clean flame. A blocked exhaust can push carbon monoxide back into the house, which is why a Navien E110 or a Noritz 90 tied to venting should be treated as an emergency: leave the unit off and get it inspected before running it again. Incomplete combustion from a starved or over-gassed burner also makes CO. The code shutting the unit down is the safety system doing its job. What you must not do is bypass the pressure switch or flame sensor, or force the unit to fire, because then it is burning blind. If you have a CO alarm near the unit and it is not already there, add one.