Is your Subaru Check Engine Light on? Learn what Subaru Check Engine Light (CEL) means, common problems, and how to read engine codes yourself by following the procedures below.


What does the Subaru check engine light mean?

When a Subaru On-Board Diagnostic (OBD) detects a problem with the engine, emission system, or transmission, it triggers the check engine light. The OBD system then stores a fault code (also known as Diagnostic Trouble Code or DTC) in the memory, which you can retrieve with an OBD-II scanner.


A flashing Cruise Control or Vehicle Dynamics Control light sometimes accompanies the Subaru check engine light. It doesn’t mean that there is a problem with these systems. It simply means that they are disabled due to the engine problem.


Subaru engine

When you notice the check engine light is on, the first thing to do is to observe if there are any other symptoms, such as:

  • Rough running
  • Engine misfires or juddering
  • Engine shakes
  • Lack of power
  • Engine Overheats
  • Oil light on
  • Poor throttle response
  • Unusual sounds
  • Smoke from the exhaust
  • Subaru struggles to start.

If your Subaru has any of these symptoms, it indicates that it is not running as it should. Start looking for a place to pull over and turn the engine off safely to prevent additional damage.

Common Causes

subaru check engine light causes maf sensor

Many problems can cause the Subaru to illuminate the check engine light. It can be as simple as a loose fuel tank cap to a clogged catalytic converter. Common causes that trigger Subaru check engine lights are:

  • Loose gas cap – no performance symptoms. Code P0457. Tighten or replace the gas cap.
  • Mass airflow sensor – cruise control may also flash, plus you may notice engine misfire.
  • Faulty spark plugs – engine shakes and may also overheat.
  • Oxygen sensor – reduced fuel economy.
  • Catalytic converter – difficult to accelerate uphill.
  • Weak battery – car struggles to start.
  • Thermostat – engine overheats or takes too long to warm up.
  • Oil level low – prolonged oil changes, oil light, may also come on.

How to Diagnose Subaru Check Engine Light?

Read the fault codes to find out why the check engine light stays. Use an OBD-II Scanner to read the fault codes.

  1. Plugin your scanner under the OBD-II port on the dashboard (above the brake pedal).subaru obd2 port
  2. Turn on the ignition but do not start the engine.turn on subaru check engine light ignition on
  3. Allow your scanner to communicate with the On-Board Diagnostic system.
    PXL 20220312 003004456
  4. Select READ CODES on your scanner to retrieve stored codes.

  • After fixing the underlying problem, reconnect the scanner. Scroll down to Erase Codes and press Enter.

    The code may not be enough to pinpoint the cause. Do not replace parts based on the code alone.

    Common Codes That Trigger Subaru CEL

    Subaru ignition packThe following problems primarily affect Subaru vehicles such as Forester, Impreza, Outback, Ascent, Legacy, WRX, and Crosstrek.

    • P0026 and P0028 – on engines with Variable Valve Lift (VVL) system, this code is usually caused by a faulty VVL pressure switch. You have one on each cylinder head. This code is generally accompanied by rough idle. Remember that low or sludged oil levels can also trigger this code.
    • P1443 – this code will indicate a faulty EVAP control solenoid. In most cases, you will experience fuel-up cut-offs while refilling. Replacing the defective solenoid is the usual cure.
    • P2096 and P2098 – this will indicate that your engine is running lean. It can be caused by a faulty downstream 02 sensor, worn-out catalytic converter, or an exhaust leak. Dirty MAF sensors, intake leaks, or low fuel pressure can trigger this code. But in that case, you would experience driveability issues, such as rough idle or lack of power.
    • P0171 – also indicates a lean running engine. However, this code will have nothing to do with the exhaust. The most common problem is an intake manifold gasket. It could also be a dirty fuel injector, weak fuel pressure regulator, faulty MAF, or bad upstream 02 sensors.
    • P0172 – is similar to the above but indicates a lean running engine. The difference is that dirty air filters or leaking fuel injectors are additional possible causes.
    • P0031 and P0032 – this code means that the upstream 02 sensor heater element is not working. A faulty heater circuit can cause damage to wiring or a blown fuse, usually located under the dash. You will not have any symptoms other than the check engine light.
    • P0420 code is a common Subaru problem as well. It simply tells you that the catalytic converter is operating below efficiency. The problem could be the catalytic converter itself, but it can also be an oxygen sensor, a vacuum leak, etc. Get an opinion of an experienced Subaru mechanic before you start replacing parts.
    • P0300 P0301 P0302 P0302 P303 P0304 these are engine misfire codes. A faulty spark plug often causes it, but a bad MAF can also cause it, blown head gasket, clogged catalytic converter, spark plug wires, etc.

    Many newer Subarus might have a check engine light and a cruise light flashing after a battery change. In most cases, this is caused by a blown fuse in the engine compartment fuse box.

    Other possible causes include faulty Engine Control Unit (ECU), prolonged oil changes, corroded wire harness, software issues, thermostat, cracked head, spark plug wires,

    Subaru Check Engine Light Flashing

    If the check engine light is flashing, a misfire has been detected. Typically this is due to a faulty spark plug, ignition coil, or damaged catalytic converter.

    Driving a Subaru with a flashing check engine light can damage the engine and catalytic converter.

    A flashing check engine light is one thing that you should not ignore. While this is not that damaging if you drive for a few minutes, it will devastate your engine and catalytic converter if ignored for a long time.

    Can I Reset CEL by disconnecting the battery?

    reset subaru check engine light by disconnecting the battery

    You may have been told to disconnect the battery negative terminal to turn off the Subaru check engine light for a few minutes.

    While this procedure will turn off your Subaru check engine light, it is not recommended because it clears codes that help diagnostics.

    Also, disconnecting the battery does not fix the problem. Sure your check engine light will reset, but if no codes are still active, the light will reset within two to three days—no need to disconnect the battery.

    Also, remember that your Subaru check engine light will return if the problem hasn’t been fixed. If you recently disconnected the battery or cleared the codes with an OBD2 scanner, you will not pass a state emission test. Fix the underlying problem, then drive the car for a few days before taking your Subaru for a smog test.

    Check Engine and Cruise Control Light On

    On some Subaru models, such as the Forest, you will notice that the Cruise Control (CC) comes on in addition to the check engine light.

    This is to inform you that the cruise control is disabled due to the engine malfunction. Other lights, such as the traction control and ABS, may also come on.

    Once the check engine light problem and been fixed, these lights should turn off.

    Subaru check engine light on but no codes

    Older Subarus have a green connector under the dash meant to be disconnected. Connecting it will send the car into a so-called test mode.

    A check engine light will flash rapidly, but no codes will be stored. Also, engine cooling fans will be turned off and on.

    Newer Subarus don’t have this connector. Instead, there is an empty fuse slot in the engine compartment. Test mode is activated by installing a fuse is installed into this slot.

    Can a Loose Gas Cap Trigger Check Engine Light?

    When your Subaru check engine light comes on, you should first tighten the gas cap. You can continue driving only if there are no other symptoms.

    If the gas cap is not tight, it could vaporize from the fuel tank to escape, which triggers the check engine light.

    If your Subaru check engine light doesn’t turn off after a few days, the next step would be to read the fault codes via the OBD-II port under the dashboard.

    Replace the gas cap if the seal shows cracks.


    Hundreds of possible problems can cause the Subaru check engine light to come on. The most common issues are spark plugs, oxygen sensors, and catalytic converter failure. Instead of guessing what is wrong, use an OBD-II scanner to read the fault codes.

    Frequently Asked Questions

    Are the Subaru check engine light, the cruise light blinking on and off, and the Vehicle Dynamics Control light staying on?

    Additional systems, such as Cruise control and Vehicle Dynamics Control, will be deactivated whenever an engine-related problem arises. This is done systematically to avoid additional driving ability problems and gain the driver’s attention. Your Subaru is designed to deactivate these systems As long as there are no other issues or the check engine light is not blinking, you can drive your car. But have the problem fixed as soon as possible.

    Why does my Subaru check engine light come on in cold weather?

    You could have a check engine light in cold weather accompanied by a misfire, rough running, and splutter until the engine warms up. In this case, you might have a shrunken intake manifold gasket. This causes intake leaks and unmetered air, resulting in all driveability issues.

    Why are the check engine light and brake light flashing in my Subaru?

    If your engine develops a misfire, you will be warned by a flashing check engine and a flashing brake light. The main purpose of these multiple flashing lights is to catch your attention, as the misfire can cause damage to the engine or the emission control system in a short time.

    Can I reset the Subaru check engine light by disconnecting the battery?

    While resetting the Subaru check engine light by disconnecting the battery is possible, this does not fix it. If the underlying problem is not fixed, the light will return. Depending on the problem, it could come back as soon as you restart the car or a week later.

    We hope you find the Subaru Check Engine Light Stays On guide helpful. Check these troubleshooting and repair guides for more help on your Subaru.

    Leave a Reply

    Your email address will not be published. Required fields are marked *

    One Comment

    1. Anonymous says:

      I have code 400 (EGR) I have done everything possible to clear this, changed EGR valve, changed PCV valve, no vacuum leaks, fairly new CAT, last year changed head gaskets, timing belt, water pump, new plugs, wires, spark pack, new radiator, new air filter………… what else is tripping this code ?? ! ! ! EGR tube is clear, took off throttle body, cleaned that “TUBE” inside the intake manifold.