Affiliate Disclosure
Some links on this page are affiliate links. As an Amazon Associate, we earn from qualifying purchases — at no extra cost to you. We do not buy, test, or physically handle the products we cover; our rankings come from aggregated owner reviews, ratings and expert consensus. Commissions never change our verdicts. How we rank & full disclosure.
Your check engine light just came on. You pulled the code. Now you're staring at a string of letters and numbers that could mean anything from a loose fuel cap to an engine on its way out. This guide cuts through the noise.
Before we go further: a code names the system that flagged a fault, not the exact component you need to replace. Buying parts before you diagnose is how you waste money. Read the code, read the freeze-frame data, then test. We cover that process in detail in our guide to freeze-frame and live data.
This page is part of our Reading OBD2 Codes hub. If you're not yet sure how codes are structured, start with understanding OBD2 code format first.
Quick Reference: The Most Common OBD2 Codes
| Code | Short Description | Safe to Drive? |
|---|---|---|
| P0300 | Random/multiple cylinder misfire | No — stop soon |
| P0301–P0304 | Cylinder-specific misfire (1–4) | No — stop soon |
| P0420 / P0430 | Catalyst efficiency below threshold | Yes, short-term |
| P0171 / P0174 | System running lean (Bank 1 / Bank 2) | Caution |
| P0172 | System running rich (Bank 1) | Caution |
| P0128 | Coolant temperature below thermostat regulating temp | Yes, monitor |
| P0442 | EVAP system small leak | Yes |
| P0455 | EVAP system large leak | Yes, check cap first |
| P0456 | EVAP system very small leak | Yes |
| P0401 | EGR insufficient flow | Yes, address soon |
| P0011 | Intake camshaft timing over-advanced (Bank 1) | Caution |
| P0136 | O2 sensor circuit malfunction (Bank 1, Sensor 2) | Yes, monitor |
| P0700 | Transmission control system malfunction | Caution — scan TCM |
Full breakdowns of each code follow below, with likely causes listed cheapest-first and a clear note on whether it's safe to drive.
Misfire Codes
P0300 — Random/Multiple Cylinder Misfire Detected
What it means: The ECU has detected misfires across more than one cylinder, or it cannot pinpoint which cylinder is at fault. Combustion is incomplete. Unburnt fuel can wash the catalytic converter and overheat it within minutes of sustained driving.
Likely causes (cheapest first):
- Worn or fouled spark plugs — check condition and gap first
- Faulty ignition coils or worn plug leads
- Low or contaminated fuel (fill up and retest if you're running on fumes)
- Vacuum leak causing unmetered air
- Dirty or failing fuel injectors
- Low compression (leaking rings, burnt valve) — do a compression test before going further
Safe to drive? No. If the CEL is flashing, stop driving immediately. A flashing light means active catalyst damage is occurring. If the light is solid, you have a short window — do not ignore it.
P0301, P0302, P0303, P0304 — Cylinder-Specific Misfire
What it means: The last digit tells you the cylinder. P0301 is cylinder 1, P0302 is cylinder 2, and so on. This is actually more useful than P0300 because you can target your diagnosis.
Likely causes (cheapest first):
- Spark plug on that specific cylinder — swap it first
- Ignition coil on that cylinder (swap with an adjacent coil; if the misfire follows, the coil is the culprit)
- Fuel injector on that cylinder (check fuel trim data in live mode)
- Low compression on that cylinder (leaking head gasket, bent valve, worn rings)
Safe to drive? Same rule as P0300 — flashing light means stop now. The coil-swap test is a $0 diagnostic that saves you buying parts blind.
Catalyst and Exhaust Codes
P0420 / P0430 — Catalyst System Efficiency Below Threshold
What it means: The downstream oxygen sensor (behind the catalytic converter) is reporting a signal too similar to the upstream sensor. This tells the ECU the cat is no longer storing and releasing oxygen efficiently. P0420 is Bank 1; P0430 is Bank 2 on V-configuration engines.
Likely causes (cheapest first):
- A faulty downstream O2 sensor giving a false reading — test or swap before condemning the cat
- Exhaust leak upstream of the sensor (skews the reading)
- Engine running rich for an extended period (oil burn, coolant leak into combustion)
- Worn or poisoned catalytic converter — the most expensive fix, and the correct one only after eliminating the above
Safe to drive? Yes, in the short term. The car will run normally. But don't hold off for months — a degraded cat affects emissions and can eventually cause rough running.
Fuel Trim and Air-Fuel Mixture Codes
P0171 / P0174 — System Too Lean (Bank 1 / Bank 2)
What it means: The ECU is adding fuel correction (positive long-term fuel trim) to compensate for too much air or too little fuel in the mixture. P0171 is Bank 1; P0174 is Bank 2. Getting both at once on a four-cylinder usually points to a shared component like the mass airflow sensor or a large vacuum leak.
Likely causes (cheapest first):
- Dirty or failed mass airflow (MAF) sensor — try cleaning with MAF cleaner spray first
- Vacuum leak (cracked intake hose, loose clamp, split brake booster line)
- Clogged or failing fuel injectors not delivering enough fuel
- Weak fuel pump or clogged fuel filter causing low fuel pressure
- Faulty upstream O2 sensor sending incorrect readings
Safe to drive? Use caution. A sustained lean condition causes detonation and long-term engine wear. Address within a few days, not a few weeks.
P0172 — System Too Rich (Bank 1)
What it means: The opposite problem — the mixture has too much fuel or too little air. The ECU is pulling fuel out via negative fuel trim correction to compensate.
Likely causes (cheapest first):
- Dirty air filter restricting airflow
- Faulty MAF sensor reading airflow as higher than it is
- Leaking fuel injector(s) dripping fuel when they should be closed
- Faulty coolant temperature sensor causing over-fueling on a "cold start" that the ECU thinks is perpetual
- High fuel pressure from a faulty pressure regulator
Safe to drive? Use caution. Rich conditions foul spark plugs fast, wash cylinder walls of oil, and destroy catalytic converters over time.
Thermostat Code
P0128 — Coolant Temperature Below Thermostat Regulating Temperature
What it means: The engine is not reaching its normal operating temperature within the expected time window, or it's running cooler than spec. The ECU expects the coolant to hit a target temperature after warm-up; if it doesn't, this code sets.
Likely causes (cheapest first):
- Faulty thermostat stuck open — this is the cause in the vast majority of cases and thermostats are cheap
- Faulty coolant temperature sensor sending incorrect data
Safe to drive? Yes, but the engine running too cool hurts fuel economy, increases wear, and causes heater performance issues in winter. A thermostat is one of the cheaper fixes in this entire list.
EVAP System Codes
P0442 / P0455 / P0456 — EVAP Leak (Small / Large / Very Small)
What it means: The evaporative emission control system captures fuel vapor from the tank and routes it into the intake to be burned. Any breach in that sealed system — from the gas cap all the way to the charcoal canister — will set one of these codes. P0455 is a large leak. P0442 is a small leak. P0456 is a very small leak. P0455 is often nothing more than a loose or worn fuel cap.
Likely causes (cheapest first):
- Loose or improperly seated fuel cap — tighten it, clear the code, drive for two days and see if it returns
- Cracked or deteriorated fuel cap seal
- Split or cracked EVAP hose
- Faulty purge valve or vent valve
- Cracked or leaking charcoal canister
- Leak in the fuel tank itself
Safe to drive? Yes. EVAP codes will not cause a breakdown or engine damage. Check the fuel cap first — it costs nothing and clears more P0455 codes than anything else.
EGR Code
P0401 — EGR Insufficient Flow Detected
What it means: The exhaust gas recirculation (EGR) system is not flowing the expected volume of exhaust gas back into the intake. This affects emissions and can cause pinging or knock under load on some engines.
Likely causes (cheapest first):
- Carbon-clogged EGR valve passages — often cleaned with carb cleaner without full removal
- Stuck EGR valve (test with a hand vacuum pump; the valve should open and the idle should drop)
- Blocked EGR tube or cooler
- Faulty EGR position sensor or solenoid
- Vacuum line to the EGR valve cracked or disconnected
Safe to drive? Generally yes for daily distances, but rough idle, hesitation, and detonation will worsen if left unchecked.
VVT / Camshaft Timing Code
P0011 — Intake Camshaft Position Timing Over-Advanced (Bank 1)
What it means: This is a particularly common code on JDM engines with variable valve timing (VVT) systems — Nissan's VVEL, Toyota's VVT-i, Honda's VTEC/VTC, Subaru's AVCS. The ECU commanded the intake cam to a specific angle, but the cam is sitting more advanced (further forward in the cycle) than it should be, or it cannot return to the base position.
Likely causes (cheapest first):
- Low or dirty engine oil — the VVT actuator is oil-pressure driven; check level and condition immediately
- Sludge blocking the oil control valve (OCV) screen — a very common cause; the screen can often be cleaned
- Faulty oil control valve / VVT solenoid
- Stretched or worn timing chain causing cam timing to wander
- Faulty camshaft position sensor
Safe to drive? Use caution. If oil condition is a factor, continuing to drive can accelerate timing chain wear or damage the VVT actuator. Check your oil first, right now, before anything else.
Oxygen Sensor Code
P0136 — O2 Sensor Circuit Malfunction (Bank 1, Sensor 2)
What it means: The downstream oxygen sensor on Bank 1 (the one after the catalytic converter) is reporting an abnormal signal or is not switching as expected. This sensor is used primarily for catalyst monitoring, not fuel control, so it has less immediate impact than an upstream O2 fault.
Likely causes (cheapest first):
- Damaged wiring or connector to the sensor (heat damage near the exhaust is common)
- Faulty downstream O2 sensor
- Exhaust leak near the sensor contaminating its readings
Safe to drive? Yes, in most cases. The upstream sensor still controls fuel mixture. Diagnose before replacing — check the wiring harness and connector before buying a new sensor.
Transmission Code
P0700 — Transmission Control System Malfunction
What it means: P0700 is a flag, not a full diagnosis. It tells you the transmission control module (TCM) has detected a fault and stored its own transmission-specific code (usually a P07xx series). You need to scan the TCM separately to pull that second code — many basic code readers only pull powertrain codes from the ECU and miss the TCM entirely. A Bluetooth OBD2 adapter with a capable app, or a proper scan tool with transmission coverage, is needed here.
Likely causes:
- Depends entirely on the companion TCM code — pull it before doing anything
- Common underlying faults include: faulty shift solenoid, dirty or low transmission fluid, faulty speed sensor, or internal mechanical fault
Safe to drive? Use caution. If the transmission is slipping, shuddering, or refusing to shift, stop driving and get the full TCM codes read. If it's driving normally with only this code present, you have a short window to get it properly scanned.
The Rule That Saves You Money
Every single code above names a system or circuit, not a component. P0171 does not mean "replace the MAF sensor." It means "something is causing a lean condition — now go find it." P0420 does not mean "buy a new catalytic converter." It means "the catalyst is reporting low efficiency — now confirm why."
Before you order any part, look at the freeze-frame data captured when the fault occurred. Check the operating conditions: was the engine cold or hot? Idling or under load? What were the fuel trims? That data narrows the field dramatically.
Once you've done the repair, read our guide on how to clear an OBD2 code correctly — including how to confirm the repair has actually held by running the relevant readiness monitors to completion.
And if you're unsure whether a code makes your car unsafe to drive right now, our is it safe to drive guide covers the criteria clearly.
Recommended Products

Best for DIYers who want pro-grade data on their phone
- Full OEM-level code coverage
- Repair reports from real fixes
- Reads ABS/SRS and TCM/live data
- Works with iOS & Android
Why buy it: the best all-round scanner — its OEM coverage pulls the TCM code hiding behind a P0700 and the freeze-frame data these codes demand before you buy parts.

Best for a standalone tool with no phone needed
- Color screen, no phone needed
- Live data & freeze frame
- Reads & clears CEL codes
- One-button retrieval
Why buy it: a dependable standalone handheld that reads the freeze-frame data this guide leans on — enough to diagnose a P0300 or P0171 without a laptop.

Best for the check-engine basics on the tightest budget
- Reads & clears basic codes
- Freeze-frame data
- Simple one-button use
- No subscription
Why buy it: a cheap, reliable reader for pulling and clearing a code like P0455 — tighten the gas cap, clear it, and see if it returns.
Best for all-system diagnostics and TCM/ABS/SRS codes
- Full-system (ABS/SRS/trans + more)
- Bidirectional active tests
- 28+ maintenance service functions
- Tablet interface, wide coverage
Why buy it: the tool for when a P0700 needs the transmission module scanned separately — full-system access and active tests basic readers simply cannot reach.
Prices are pulled from Amazon and were accurate as of Aug 22, 2026, 6:54 PM EDT. Product prices and availability are subject to change — the live price is shown on Amazon.
