Check Engine Light On (Steady)

A steady check engine light means the powertrain computer ran a self-test, the result fell outside its limits, and it stored a diagnostic trouble code. That is all it means. The code names a circuit or a measurement, not a broken part. Most emissions faults also have to fail on two consecutive drive cycles before the light comes on, which is why the underlying problem usually predates the light by days. Some faults do not wait: a catalyst-damaging misfire lights the lamp on the first trip and flashes it, and several fuel-system and component faults illuminate on a single trip as well. A steady light on a car that drives normally is usually not an emergency, but steady is a statement about how the fault was stored, not a promise that nothing is being damaged. A flashing light is a completely different situation and means stop. The one genuinely useful action is reading the code and the freeze frame stored with it: engine speed, load, coolant temperature and fuel trim at the instant the fault set. That snapshot is often worth more than the code itself. Any inexpensive OBD-II reader plugs into the standard 16-pin connector, which is required to be in the passenger compartment on every 1996-and-newer US-market vehicle, though the exact spot under the dash varies. Do not clear the code before it is diagnosed. Clearing erases the freeze frame and resets the readiness monitors, and the car will fail an emissions test until enough driving has been done to set them again.

Safety

A steady light by itself rarely signals immediate danger, but it can appear alongside something that does, and it can also sit on top of a fault that is actively causing damage. Treat it as urgent if the temperature gauge is climbing, an oil pressure light is on, the battery/charging light is on, steering or brakes feel different, you smell raw fuel or something hot and acrid, or the engine is shaking. In those cases the check engine light is the least important thing on the dash. A sub-threshold misfire, a lean condition, or an engine running hot can all sit behind a light that never flashes, so a steady lamp is a reason to get the code read soon rather than a reason to defer it indefinitely. If the light begins flashing, stop driving.

Narrow it down

Each question splits the possibilities. Answer them in order — by the end you should have a much shorter list than you started with.

  1. Is the light steady rather than flashing?

    If yes
    Steady means the fault was stored rather than judged catastrophic in real time. That is not a guarantee nothing is being damaged — an untreated misfire below the flashing threshold, a lean condition, low oil level, or an engine already running hot can all sit behind a steady light. Check the temperature and oil pressure lights, listen and feel for changes in how the engine runs, then get the code read before spending money.
    If no
    A flashing light means an active misfire dumping raw fuel into the exhaust. Stop driving and treat it as the separate, urgent problem it is.
  2. Does the car drive exactly as it did before - same power, same idle, same sounds, smells and fuel economy?

    If yes
    Points toward an emissions or monitor fault: EVAP leak, catalyst efficiency, a sensor drifting out of range. Usually not urgent, but it will fail an emissions test and some of these do get worse — a misfire mild enough to feel like nothing is still poisoning a converter.
    If no
    The symptom is more diagnostic than the light. Describe exactly when it happens - cold, hot, accelerating, coasting, turning - because that pattern narrows the code's meaning far more than the code number alone.
  3. Did the light appear within a day or two of filling the fuel tank?

    If yes
    Check the fuel cap first: clicked tight, gasket intact and soft, not cross-threaded, correct cap for the car. EVAP leak codes are the most common consequence of a bad seal. If the cap checks out, the leak is elsewhere in the EVAP system and needs a smoke test.
    If no
    Fill-up timing does not implicate the cap, so an EVAP code here more likely means a cracked hose, a leaking purge or vent valve, or a failed charcoal canister.
  4. Are other warning lights on at the same time - battery, ABS, traction, temperature?

    If yes
    Look for a shared root cause before chasing individual codes. Low system voltage, a corroded ground, a failing alternator, or a communication network fault will all set codes across unrelated modules. If one of those lights is a red temperature, oil pressure or brake warning, deal with it first — those are not emissions notifications.
    If no
    Treat it as a powertrain-only fault and work the stored code on its own merits.
  5. Did it come on right after service, a repair, or an accessory installation?

    If yes
    Inspect what was touched. An unplugged sensor connector, a vacuum line left off, a loose intake clamp after the mass air flow sensor, or a wire pinched under a bracket are all far more likely than a coincidental part failure.
    If no
    Weigh mileage, age and maintenance history instead: original spark plugs, original oxygen sensors, or long-deferred maintenance make ordinary wear failures more plausible.
  6. Does the light go out on its own and come back days later?

    If yes
    Intermittent, and usually temperature-, load-, moisture- or vibration-dependent. The freeze frame from each occurrence is your best evidence. Wiggle-testing connectors with live data displayed often finds it faster than parts swapping — do that with the vehicle parked, the parking brake set, and hands and leads clear of the belt and cooling fan.
    If no
    A hard fault that is present continuously is the easier case - a scan tool with live data should show the out-of-range value while you watch.
Likely causes and how to check each one
  1. 1

    EVAP system leak, including a loose or failed fuel cap

    Very common

    The evaporative emissions system is sealed and self-tested by the computer. Any leak - a cap that did not seal, a cracked hose, a purge or vent valve stuck open, a rusted filler neck - shows up as a small or large leak code. Most EVAP leaks cause no drivability symptoms, which is why the light is often the only clue. The exception is a purge valve stuck open, which pulls fuel vapour into the intake at idle and can produce a rough or unstable idle, a stall, or hard starting right after a fill-up.

    How to check

    Inspect and reseat the cap, then see whether the code returns after several drive cycles. If it does, a shop smoke-tests the system to find the actual leak — replace a valve or hose only after the smoke test shows where the leak is. Cap replacement is typically $20 to $70; a smoke test and repair of a hose or valve commonly runs $150 to $450.

  2. 2

    Oxygen or air-fuel ratio sensor degraded, slow, or heater circuit open

    Very common

    These sensors age. A lazy sensor still reports plausible numbers but responds too slowly, which the computer catches during monitor testing. The heater circuit inside the sensor also fails, which sets its own code and delays closed-loop operation.

    How to check

    Live data is the test, and it differs by sensor type. A conventional narrowband upstream sensor should switch rich-to-lean briskly; a wideband air-fuel ratio sensor does not switch at all and is judged on whether its reported lambda or pumping current tracks commanded mixture changes — grading a wideband on switching speed will fail a perfectly good sensor. Compare either against long-term fuel trim, since a sensor reporting lean while trims are already positive tells a different story than one reporting lean with trims at zero. A code naming a sensor circuit still requires checking the wiring and connector before condemning the sensor. Sensor replacement typically runs $180 to $500 depending on location and access.

  3. 3

    Misfire - ignition, fuel or compression on one or more cylinders

    Common

    The computer detects misfire by watching tiny crankshaft speed variations. A misfire too mild to feel will still set a code, and it is still sending unburned fuel to the converter while the light sits steady. Left alone it tends to worsen, and a worsening misfire is what eventually makes the light flash.

    How to check

    Read whether the code names a specific cylinder or is random/multiple, and read the misfire counters as well as the code. Cylinder-specific points at that cylinder's plug, coil, injector or compression — confirm by moving the suspect coil or injector to another cylinder, clearing the codes and counters, and seeing whether the misfire follows the part. Random points at something shared: fuel pressure, a large vacuum leak, timing, or bad fuel. Plugs and coils on a common four-cylinder typically run $200 to $700.

  4. 4

    Catalyst efficiency below threshold

    Common

    The computer compares the upstream and downstream oxygen sensor signals. When the downstream sensor starts mirroring the upstream one, the converter is no longer storing and releasing oxygen the way it should. Important: this code is set by a sensor comparison, so a lazy downstream sensor, an exhaust leak, or an untreated misfire that poisoned the converter can all produce it.

    How to check

    Verify there is no exhaust leak ahead of the sensors, no active misfire, and no rich or lean condition first. Then compare sensor waveforms. Replace the converter only once those have been ruled out and the waveform comparison actually confirms it — replacing it without ruling them out often just repeats the failure. Converter replacement commonly runs $900 to $2,800, and far more on some vehicles.

  5. 5

    Unmetered air entering after the mass air flow sensor (lean condition)

    Common

    A cracked intake tube, a split PCV or brake booster hose, a failed intake manifold gasket, or a leaking purge valve lets in air the computer never measured. Fuel trims climb positive to compensate, and once they exceed the allowed correction the light comes on.

    How to check

    Read long-term fuel trim at idle and at cruise. Large positive trim at idle that improves at higher RPM strongly suggests a vacuum leak. Confirm with a smoke test rather than by ear, and repair what the smoke test actually shows. Typical repair $150 to $600 depending on what is leaking.

  6. 6

    Mass air flow sensor contaminated or drifting

    Common

    Oil from an over-oiled aftermarket air filter, dust past a poorly sealed filter, or simple aging causes the sensor to under-report airflow. The engine then runs lean and the computer compensates until it runs out of range.

    How to check

    Compare measured airflow against expected values for the engine at a known RPM - the expected figure is engine-specific, so use service data rather than a generic number. Check the intake tract for leaks downstream of the sensor first, since those produce the same trims. Cleaning with dedicated MAF cleaner is a legitimate first step and costs almost nothing; replacement typically $150 to $450, and only once the readings still fail after cleaning.

  7. 7

    EGR flow fault, stuck valve, or clogged passages

    Occasional

    Carbon builds in the EGR passages and on the valve. Insufficient flow, excessive flow, or a valve that will not respond to command all set codes. A valve stuck open also causes a rough idle.

    How to check

    Commanded versus actual EGR position or flow on a scan tool, plus physical inspection of the valve and passages with the engine off and cool. Cleaning is sometimes enough — retest flow after cleaning before replacing the valve. Typical $200 to $700 including labor to access it.

  8. 8

    Engine not reaching normal operating temperature (thermostat stuck open)

    Occasional

    The computer knows how long the engine should take to warm up and how hot it should get. A thermostat stuck partially open keeps it below that, which hurts fuel economy and emissions and sets a code without any dramatic symptom besides weak cabin heat.

    How to check

    Watch coolant temperature climb on live data during warm-up and see whether it stabilizes at the vehicle's regulated temperature - the specific value is vehicle-specific, so use service data. The dash gauge is damped and will often sit centered even when the engine is running cool, so use the scan value. Weak heater output supports it. Thermostat replacement commonly $180 to $600 depending on access.

  9. 9

    Damaged wiring, corroded connector, or rodent damage

    Occasional

    Codes point at circuits, and circuits include the wires. Chafed harnesses near the exhaust, corrosion in a connector that sits low in the engine bay, and chewed insulation produce codes identical to a failed component.

    How to check

    Inspect the harness along its whole run to the named component, check for green or white corrosion in the connector, and wiggle-test with live data displayed — vehicle parked, parking brake set, and hands and leads clear of the belt and cooling fan, which can start on its own. This is diagnostic labor, usually $120 to $200 per hour, and it saves buying the wrong part.

  10. 10

    Low system voltage or a failing battery/alternator

    Occasional

    Modules misbehave when supply voltage sags. Weak batteries and failing alternators produce clusters of odd, unrelated codes that clear once the electrical supply is corrected.

    How to check

    Load-test the battery and check charging output and ripple. If several unrelated modules are complaining at once, do this before anything else. Battery $150 to $350; alternator $400 to $1,100.

  11. 11

    Powertrain control module fault

    Rare

    Genuine module failure happens - usually from water intrusion, a shorted output driver, or corrosion - but it is the last thing to suspect, not the first. Most codes that appear to blame the computer are actually wiring or a failed component loading a driver circuit.

    How to check

    Only after the wiring, grounds, power supply and the driven component have all been verified good. Replacement usually requires programming and often immobilizer relearn; commonly $600 to $1,800.

Ordering reflects how often each cause is responsible in general, not a probability for your vehicle. Confirm by testing before replacing anything.

Codes commonly stored with this symptom
If the light is on

A stored trouble code narrows this considerably — it tells you what a module actually measured rather than what you noticed. Any basic scanner will read it. Look the code up here.