Maintenance

Check Engine Light: 10 Most Common Causes and Fixes in 2026 (With Repair Costs)

Check Engine Light: 10 Most Common Causes and Fixes in 2026 (With Repair Costs)

The check engine light, officially the Malfunction Indicator Lamp (MIL), confuses drivers more than any other warning on the dash. Most people react one of two ways. Some panic and assume the engine is about to blow. Others wave it off because "it always does that." Both reactions lead to bad decisions. The light can come on for dozens of reasons, anywhere from a loose gas cap to a catalytic converter that needs replacing, and the only way to know which is to read the code. Any driver can do that with a $30 tool.

This guide explains how the system works, how to respond when the light comes on, and what the most common codes mean for your engine and your bank balance.

Read the Code Before You Do Anything Else

The check engine light tells you something is off, not what's wrong. It means the car's onboard diagnostic system (OBD-II, standard on every US vehicle since 1996) has seen a reading outside its normal range. The specific reading, whether that's fuel trim, oxygen sensor voltage, misfire counts, or an evaporative leak test, is stored as a Diagnostic Trouble Code (DTC) that spells out what the system detected. Without the code you're guessing. With it, you have a clear place to start.

The system also keeps codes in memory after the light goes out. If the light came on for a while and then switched itself off, there's still a stored code (often called a "pending" or "stored" code) that shows what set it off. Plenty of drivers take a light that went out as a sign the problem fixed itself. Sometimes that's true. More often, whatever triggered it simply stopped for a while and the root cause is still there.

The OBD2 Reader That Changes Everything

An OBD2 code reader plugs into the diagnostic port under the dash, usually on the driver's side below the steering column, and pulls up any stored fault codes. Basic readers that read and clear codes start at $25 to $30 (Ancel AD310, LAUNCH CR319). Step up to $60 to $100 and you get live data, meaning real-time sensor readings plus freeze-frame data that shows what conditions were like when the fault happened (Innova 3100RS, BlueDriver). The BlueDriver, at about $120, also reads enhanced manufacturer-specific codes beyond the generic set and includes repair reports listing common fixes for each code, drawn from professional repair databases.

For most drivers, a basic reader covers the first question: what turned the light on? The reader gives you the code, and a quick search for something like "P0420 meaning" tells you what it points to. That's $30 and five minutes, and the light goes from a mystery to a specific problem you can deal with. For anyone who has been driving to the parts store for a free code read every time the light pops up, owning a reader takes a lot of stress out of car ownership.

If you'd rather not buy one, most big parts chains (AutoZone, O'Reilly, Advance Auto Parts) will read your codes for free. The downside is that you'll only get the generic code, not the enhanced data that can change the diagnosis, and you have to drive to the store instead of checking in your driveway.

Understanding Code Severity: Solid vs Flashing

Before you look anything up, note whether the light is solid or flashing. A flashing check engine light means the engine is misfiring badly enough, right now, to damage the catalytic converter. This is the one situation that calls for action immediately. Stop driving hard, slow down, and get to a shop as soon as you reasonably can. Keep flooring it with a flashing light and you can ruin a catalytic converter in a single trip, which runs $1,500 to $3,000 to replace.

A solid light isn't a pull-over-now situation. The system has found a fault and logged it, and you have time to read the code and decide how urgent it is. With many solid-light faults you can keep driving normally for days or even weeks while you set up a repair.

P0420: Catalyst System Efficiency Below Threshold (Cost: $150–$2,500)

P0420 (P0430 is the same code for bank 2 on V6 and V8 engines) is one of the most common check engine codes and, if the converter has truly failed, one of the priciest to fix. It means the catalytic converter isn't cleaning up the exhaust as well as the engine computer expects, based on readings from the oxygen sensors before and after it.

Don't assume the converter is dead. Rule out the cheaper possibilities first. An exhaust leak between the engine and the converter lets outside air into the exhaust and throws off the oxygen sensor readings that trigger P0420. A bad upstream or downstream oxygen sensor can make a perfectly good converter look like it's failing. Carbon buildup on the sensors, from long-term use of poor fuel or an engine that burns oil, can do the same.

If the converter really has failed, an OEM replacement costs $800 to $2,500 depending on the car. Aftermarket converters sell for $150 to $400, but they don't last nearly as long, often set off P0420 again within a year or two, and may fail emissions tests in states with strict rules. On most cars, the fix that lasts is a factory converter, which is expensive but durable. How urgent is it? You can keep driving with P0420, but the car will fail an emissions test and the oxygen sensors will wear faster.

P0300/P0301–P0308: Engine Misfire (Cost: $20–$800)

P0300 means a random or multiple-cylinder misfire. P0301 through P0308 point to one cylinder: P0301 is cylinder 1, P0302 is cylinder 2, and so on. A misfire happens when combustion in a cylinder doesn't go as it should. The spark plug didn't fire, the fuel didn't light, or low compression meant the mixture only partly burned.

Here are the common causes, roughly from most likely and cheapest to least likely and most expensive:

  • Worn spark plugs: $20 to $80 in parts, and easy to do yourself on most engines.
  • A bad ignition coil or coil pack: $40 to $120 per coil, also doable at home.
  • A clogged or failing fuel injector: $150 to $350 per injector to replace, or $100 to $200 for professional ultrasonic cleaning.
  • A vacuum leak: $15 to $60 in parts, depending on where it is.
  • Low compression from worn rings or a burnt valve: $1,500 to $4,000 for bottom-end or cylinder head work.

Start with the easy stuff. If the spark plugs haven't been changed in 60,000 to 100,000 miles, replace them first. For $30 to $60 in parts, that often clears up a misfire that would have sent someone else to the shop for a pricey diagnosis. If the code names a cylinder (P0301 and so on), swap that cylinder's ignition coil with the one next to it. If the misfire moves to the new cylinder, the coil is bad. If it stays put, look at the spark plug, the injector, or compression in that cylinder.

P0171/P0174: System Too Lean (Cost: $0–$600)

P0171 (bank 1) and P0174 (bank 2 on V6 and V8 engines) mean the engine is getting less fuel than the computer expects, so the air-fuel mixture is leaner than the target ratio. The computer tries to fix it by adding fuel (positive fuel trim), but it has run out of room to adjust. The causes range from free, like a vacuum hose that popped off, to fairly expensive, like a mass airflow sensor, fuel pump, or injectors.

Work through these in order. First, look for a vacuum leak. A cracked or loose vacuum hose lets in air the engine doesn't measure, which leans out the mixture. Check every vacuum line for cracks, especially around the intake manifold. With the engine running, spray a little carburetor cleaner around the connections; if the idle changes, you've found the leak. Next, clean the mass airflow sensor. A can of MAF cleaner costs about $8 and often clears the code. After that, check the fuel filter if your car has a serviceable one (many newer cars have lifetime filters); a new filter costs $30 to $80. Last on the list are weak injectors that aren't delivering enough fuel.

P0442/P0455: EVAP System Leak (Cost: $0–$450)

The Evaporative Emission Control (EVAP) system traps fuel vapor from the tank and sends it to the engine to be burned instead of letting it escape into the air. P0442 means a small leak in that system, and P0455 means a large one. By far the most common cause of both is a loose, damaged, or missing gas cap. Check it, tighten it, and look it over first. If the cap was the problem, the code should clear on its own after a few drive cycles.

If the cap looks fine, the leak could be anywhere in the EVAP system: the purge valve (a solenoid that opens to send stored vapor to the engine), the vent valve, the charcoal canister, or any of the hoses that link them. Most shops can find the leak with a smoke machine, which fills the system with visible smoke so you can see where it escapes, for $50 to $100. Repair costs depend on the part: $25 to $100 for a purge valve, $50 to $150 for a vent valve, and $100 to $300 for the canister.

P0128: Coolant Temperature Below Thermostat Regulating Temperature (Cost: $25–$150)

P0128 nearly always means the thermostat has stuck open. Instead of closing while the engine warms up, it lets coolant run through the radiator the whole time, so the engine never gets up to its normal operating temperature of about 195°F to 220°F.

An engine that runs cold burns more fuel, because the computer keeps the mixture rich until the engine reaches temperature, and if it never gets there, it stays rich. More fuel also ends up diluting the oil, and in winter the heater won't blow as hot. Replacing a thermostat is a good DIY job on most cars. The part costs $15 to $30, and the job means draining a little coolant, taking off the thermostat housing, and fitting the new one. Including a coolant top-up, figure $30 to $80 if you do it yourself or $120 to $250 at a shop.

P0401: EGR Flow Insufficient (Cost: $0–$500)

The exhaust gas recirculation (EGR) system sends a small amount of exhaust back into the engine to lower combustion temperatures and cut emissions. P0401 means the computer isn't seeing as much EGR flow as it expects. It's especially common on older Hondas, Nissans, and Fords.

The usual cause is carbon buildup. The EGR passages in the intake or the EGR valve itself gradually clog, and flow drops off. Cleaning the passages and valve can fix it for little more than the cost of a can of carbon cleaner and some time. If the valve has failed, a replacement typically costs $150 to $500 installed. Some Fords also use a separate pressure sensor for EGR (often called a DPFE sensor) that fails regularly and costs far less than the valve. Cracked vacuum lines to the valve can cause the same code. You can usually keep driving with P0401, but you may notice pinging or knocking under load, and the car will likely fail an emissions test.

P0011/P0012: Camshaft Timing Over-Advanced or Retarded (Cost: $0–$2,500)

Most modern engines use variable valve timing, which uses oil pressure to shift the camshaft's timing as you drive. P0011 means the intake camshaft on bank 1 is more advanced than the computer commanded, and P0012 means it's more retarded. Because the system runs on oil, the first thing to check is the simplest: your oil level and condition.

Low oil, old sludgy oil, or the wrong viscosity can all set these codes, and an oil change with the correct grade sometimes clears them up completely. The next most common cause is a faulty oil control solenoid (also called the VVT solenoid), a part that often costs $30 to $150 and runs about $100 to $300 installed. Less often, the cause is a stretched timing chain or a worn cam phaser, which is a much bigger job, often $1,000 to $2,500 or more. Don't ignore these codes. If the engine is low on oil, driving on it can cause serious damage, so check the dipstick before anything else.

P0113: Intake Air Temperature Sensor High Input (Cost: $0–$150)

The intake air temperature (IAT) sensor tells the computer how warm the incoming air is, which it uses to fine-tune the fuel mixture. P0113 means the sensor's signal is reading unusually high, which usually points to an open circuit, not hot air.

A very common cause is a sensor connector knocked loose during an air filter change, so check that first. On many cars the IAT sensor is built into the mass airflow sensor, so the fix may involve that part. A damaged connector or wiring, or a failed sensor ($20 to $80 for the part on many cars), accounts for most other cases. This code isn't urgent, but it can hurt fuel economy and cause rough running, so fix it soon.

P0507: Idle Air Control System RPM Higher Than Expected (Cost: $0–$250)

P0507 means the engine is idling faster than the computer wants. The most common causes are a vacuum leak that lets in extra air, a dirty throttle body, or, on older cars, a sticking idle air control valve.

Start with the cheap checks. Look for cracked or disconnected vacuum hoses, and clean the throttle body with throttle body cleaner, which costs about $10. Many cars also need an idle relearn after the battery is disconnected or the throttle body is cleaned. The procedure is often in the owner's manual or a quick search away. On older cars with a separate idle air control valve, replacing it typically costs $50 to $250. P0507 is usually not urgent, but a high idle can make the car harder to control at low speeds and waste fuel.

The Gas Cap: The Cheapest Check Engine Light Fix

A loose, damaged, or faulty gas cap is behind a large share of EVAP-related codes. Estimates put it at 10 to 20% of all check engine light cases. To fix it, tighten the cap until it clicks, drive through 3 to 5 full drive cycles (cold start, warm up, drive, cool down), and see if the light comes back. If the cap is cracked or its seal is worn, a new one costs $10 to $25 at any parts store.

Check the gas cap first every time the light comes on. It's free, takes five seconds, and rules out the most common minor cause before you bother reading codes or visiting a shop. It's hard to say how many pointless shop visits this one habit has prevented.

When to Go to the Shop vs Fix Yourself

Where's the line for DIY? If you're handy with basic tools and own a code reader, you can usually tackle spark plugs, ignition coils, vacuum hoses, easy-to-reach sensors (the MAF sensor and, on most engines, the O2 sensors), gas caps, and simpler EVAP parts yourself. Your cost is the parts plus about $30 for the reader.

Leave it to a professional when the code involves internal engine parts (compression, the timing chain, injectors that need programming), the transmission, or ABS and stability systems that tie into several other systems. The same goes for anything that needs special equipment, such as a smoke machine for EVAP leaks or programming tools for replacement sensors on some cars. A diagnosis at a reputable shop usually costs $100 to $150, and it's worth paying when you can't tell whether the code points to a $50 fix or a $1,500 one. A good tech can tell the two apart and stop you from buying parts you don't need.

The $30 investment that pays for itself immediately

A basic OBD2 code reader costs $25 to $35 online and ships in a couple of days. Next time the check engine light comes on, you can read the code in your driveway in about 90 seconds and know whether you need a shop right away or just a $12 gas cap. That knowledge is worth more than the tool the very first time you use it. Keep it in the glovebox.

Permanent vs Pending Codes: What the Difference Means

OBD2 codes are saved in two categories, and most basic readers show both: pending codes and confirmed (permanent) codes. Knowing which you have helps you decide what to do first.

A pending code is saved the first time a monitor spots a fault. It might be a one-off that never happens again, and a pending code alone won't turn on the check engine light. If the fault shows up again on the next drive cycle (a full cold start, normal drive, and shutdown), the code becomes confirmed and the light comes on. If the fault doesn't come back within a set number of drive cycles, anywhere from 3 to 40 depending on the monitor, the pending code erases itself.

A confirmed code means the fault happened on at least two drive cycles in a row, and the light is on. It won't go away by itself until the monitor completes a clean, fault-free drive cycle after the problem is fixed. If you clear it with a scan tool before fixing anything, the light will come back on the next drive cycle, as soon as the monitor runs its test again and finds the same fault.

So what does that mean for you? If you only find a pending code and the light is off, you can keep driving and watch. Either the light comes on, which means the fault repeated and the code is now confirmed, or the pending code clears, which means it was probably a one-time glitch. If the code is confirmed and the light is on, fix the problem before clearing the code. Clearing it without a repair only buys you one drive cycle before the light returns.

When Multiple Codes Appear Together

Several codes at once doesn't always mean several separate problems. Often one main fault sets off extra codes in the systems it affects. Working out which code is the cause and which are side effects saves you from paying for repairs you don't need.

A common example is P0300 (random misfire) showing up with P0420 (catalyst efficiency below threshold). The misfire is the real problem. Misfires push unburned fuel into the exhaust, the converter burns it off, and that overheats and wears out the catalyst. Fix the misfire first. Once it's repaired and the codes are cleared, P0420 may go away too, as long as the converter isn't permanently damaged. Replace the converter without fixing the misfire and you've wasted the money, because the new one will fail the same way within months.

Another common pairing is P0174 (lean, bank 2) with P0171 (lean, bank 1) on a V6. When both sides run lean at the same time, look for a single cause that affects both, such as the mass airflow sensor, a vacuum leak at the intake manifold, a weak fuel pump, or a failed fuel pressure regulator. It's unlikely you have two separate lean problems. A lean code on just one bank (P0171 without P0174) points to something specific to that side, like a bad oxygen sensor or injector trouble on that bank.

When codes come in groups, look at how the systems connect. Start with the most basic cause that could explain every code on the list. Fix that first, clear all the codes, and drive through several full drive cycles to see which ones, if any, come back.

Check Engine Light and Emissions Testing

In states that require emissions inspections, including California, New York, Pennsylvania, Massachusetts, and many others, a lit check engine light is an automatic fail, no matter the code or how clean the exhaust is. Most state OBD2 tests also check whether the car's diagnostic monitors have finished their self-tests, and clearing codes resets those monitors to "not ready." If you clear the codes and head straight to the test station without a few full drive cycles, the car can fail for incomplete monitors even with no codes stored. Fix the problem completely before the test, and after clearing codes, drive enough for every monitor to finish before you go.