First question, before anything else: is the light steady or flashing?
Flashing means stop driving as soon as you safely can. A flashing light means the engine is misfiring badly enough to dump raw fuel into the exhaust, which can destroy a catalytic converter in minutes. That is a $1,300 to $3,500 part.
Steady means the computer has stored a fault and wants it looked at, but the car is not actively destroying itself. You have time to read the code and think.
1. What it probably is

The light covers hundreds of faults, but a handful account for most of them:
- A loose or failed gas cap. Genuinely common, genuinely free to check. A poor seal lets fuel vapor escape and the car notices.
- An oxygen sensor. One of the most frequent codes there is.
- A misfire — spark plug, ignition coil, injector, or a vacuum leak.
- Catalytic converter efficiency — the notorious P0420. Frequently caused by a failed sensor or an exhaust leak rather than the converter itself.
- A mass airflow sensor, often just dirty rather than dead.
2. The five-minute check
Tighten the gas cap until it clicks. Free, takes ten seconds, and it is a real fix often enough to be worth doing first. The light may take a few drives to clear on its own.
Then read the code. A $30 scanner plugs into a socket under the dash on the driver’s side and tells you in about two minutes — the same thing a shop charges $100 to $200 for. Most chain parts stores will also read it free.
Write the code down and do not clear it. Clearing throws away the freeze-frame snapshot of what the engine was doing when the fault happened, and it resets the emissions self-tests — which will make the car fail an emissions test for days afterwards, even with no light on.
Step by step: how to read a check engine code.
3. Can you fix it yourself?
Reading the code — always yes. That alone saves the diagnostic fee and stops you walking in blind.
Fixing it depends entirely on what the code says. A gas cap or an air filter, yes. Spark plugs, sometimes — easy on some engines, a genuine nightmare on others. Sensors buried in the exhaust, usually not. Anything involving the transmission or the ABS, no.
The thing that matters most here is what a code does not tell you. A code names a symptom, not a part. P0301 says cylinder 1 is misfiring — it does not say the spark plug is bad. Could be the plug, the coil, an injector, a vacuum leak, or low compression, which is a very different conversation. Buying parts straight off a code is how people spend $200 fixing the wrong thing.
4. What a shop should charge
| Job | At a shop | DIY parts |
|---|---|---|
| Diagnostic | $100–$200 | $0 with your own scanner |
| Oxygen sensor | $150–$400 | $40–$150 |
| Spark plugs | $100–$250 | $20–$70 |
| Ignition coil | $150–$400 | $40–$120 |
| Catalytic converter | $1,300–$3,500 | Varies enormously |
Always ask whether the diagnostic fee is credited toward the repair if you have the work done there.
5. What to watch out for
- A part quoted straight off a code, with no further testing. The single most common way to be oversold on this one. Ask what testing was done beyond reading the code.
- A catalytic converter quoted off a P0420 alone. That code frequently turns out to be an oxygen sensor or an exhaust leak — a tenth of the price. Get a second opinion before agreeing to a converter.
- “We cleared the code for you.” Clearing is not fixing. If nobody found a cause, the light is coming back.
- Several unrelated parts at once. Multiple codes across different systems often point at one wiring or ground fault, not four separate failures.
A starting point, not a diagnosis. See the disclaimer.
