There are hundreds of fault codes that can turn on the check engine light, but in practice the same handful of problems turn up again and again. Below are ten of the most common causes, what each one means, how urgent it is, and how it's usually fixed.
Before you work through the list, read the stored code. It narrows things down far faster than guessing. Our guide on how to read OBD-II codes shows how to do it with an inexpensive scanner.
1. Loose, damaged or missing fuel cap
The fuel system is sealed so that petrol vapour can't escape into the air. The car regularly tests that seal. If the cap is loose, its seal is cracked, or it was left off, the test fails and the light comes on.
- Typical codes: EVAP leak codes such as P0455, P0457 or P0442 (codes vary by manufacturer).
- Urgency: low.
- Fix: tighten the cap until it clicks, or replace a damaged cap. The light can take several drives to go out after the fix.
2. Failing oxygen (O2) sensor
Oxygen sensors measure how much oxygen is left in the exhaust so the engine can adjust its fuel mixture. Older sensors become slow or inaccurate, which can increase fuel use.
- Typical codes: P0130 to P0167 range, depending on which sensor.
- Urgency: low to moderate. Get it fixed soon, because a bad sensor can affect fuel economy and, over time, the catalytic converter.
- Fix: replace the sensor. On many cars it's a reasonable DIY job with the right socket.
3. Worn spark plugs or ignition coils
Spark plugs ignite the fuel in each cylinder, and ignition coils supply the high voltage. Worn plugs or a failing coil cause misfires, which you may feel as shaking or hesitation.
- Typical codes: P0300 (random misfire), P0301 to P0308 (misfire in a specific cylinder).
- Urgency: moderate, and high if the light is flashing. See steady vs. flashing check engine light.
- Fix: replace plugs at the interval in your service schedule, and replace any failing coil. Read more in P0300 random misfire.
4. Dirty or faulty mass airflow (MAF) sensor
The MAF sensor measures how much air enters the engine. If it's dirty or failing, the engine can run lean or rich, hesitate, or stall.
- Typical codes: P0100 to P0104, and sometimes lean codes such as P0171.
- Urgency: moderate.
- Fix: cleaning with a dedicated MAF sensor cleaner sometimes helps. Never touch the sensing element. Replace it if cleaning doesn't work.
5. Vacuum leaks
Engines rely on a sealed intake. A cracked hose, loose clamp or leaking gasket lets in extra air that the sensors didn't measure, so the mixture runs lean.
- Typical codes: P0171 and P0174 (system too lean), sometimes misfire codes.
- Urgency: moderate.
- Signs: rough or high idle, a hissing sound from the engine bay.
- Fix: find and replace the leaking hose or gasket. A garage may use a smoke test to find small leaks.
6. Catalytic converter efficiency
The catalytic converter cleans the exhaust. Over time, or after the engine has misfired or burned oil, it can lose efficiency.
- Typical codes: P0420 or P0430.
- Urgency: low to moderate in most cases, but find out why it failed.
- Fix: check for a faulty downstream oxygen sensor or exhaust leak first. Replacement converters can be expensive, so a proper diagnosis matters. See P0420 code explained.
7. EVAP system leaks or faulty purge valve
Beyond the fuel cap, the evaporative emissions system has hoses, a charcoal canister and valves. Any of these can crack or stick.
- Typical codes: P0440 to P0457 range.
- Urgency: low.
- Signs: sometimes a faint fuel smell, or difficulty filling the tank.
- Fix: a smoke test finds most leaks. Purge and vent valves are common replacement parts.
8. Thermostat stuck open
If the thermostat sticks open, the engine takes a long time to warm up, which affects fuel use and emissions.
- Typical code: P0128 (coolant temperature below thermostat regulating temperature).
- Urgency: low to moderate. Watch your temperature gauge, and if it ever goes high, stop driving.
- Fix: replace the thermostat. Coolant work needs care because the system is under pressure when hot.
9. EGR valve problems
The exhaust gas recirculation (EGR) valve sends some exhaust back into the engine to reduce emissions. Carbon build-up can make it stick, especially on diesels and cars used mainly for short trips.
- Typical codes: P0400 to P0409 range.
- Urgency: moderate.
- Signs: rough idle, hesitation, loss of power.
- Fix: cleaning or replacing the valve, depending on its condition.
10. Weak battery or charging problems
A weak battery or failing alternator can cause low-voltage readings that confuse the engine computer and trigger various codes, sometimes alongside the battery warning light.
- Typical codes: system voltage codes such as P0562, plus unrelated codes caused by low voltage.
- Urgency: moderate. A car with a charging problem may stop when the battery runs flat.
- Fix: test the battery and charging system first. See signs your battery is failing.
How to work out which one you have
- Read the code and note any freeze frame data.
- Check the easy things first: fuel cap, obvious loose hoses, battery terminals.
- Match symptoms to causes: shaking points towards misfires, hissing towards vacuum leaks, and a fuel smell towards EVAP problems.
- Look up the code for your specific car. The same code can have different common causes on different engines.
If you'd rather describe what's happening in plain words, GrepKit's free car checker ranks the likely causes for your symptoms and shows typical local repair prices.
Frequently asked questions
What is the most common cause of a check engine light?
A loose or faulty fuel cap is one of the most common and easiest causes to rule out. Sensor faults, particularly oxygen sensors, and ignition problems such as worn spark plugs are also very common.
Can a check engine light come on for no reason?
There's always a reason, because the light only comes on when the computer stores a fault. Sometimes the cause is temporary, such as a loose cap or a one-off sensor reading, and the light goes off after the system re-tests.
How long can I drive with a check engine light on?
With a steady light and no other symptoms, it's usually reasonable to drive for a short time while you arrange a diagnosis. Don't ignore it for weeks, and treat a flashing light as urgent.
Should I replace the part the code mentions straight away?
Not without checking. A code names the symptom the computer detected, not always the failed part. For example, an oxygen sensor code can be caused by an exhaust leak. Confirm the cause before buying parts.