In this guide, you will learn what Subaru Check Engine Light (CEL) means, common problems and how to read engine codes yourself. 

What does Subaru check engine light mean?

Subaru Check Engine Light

When a Subaru On-Board Diagnostic (OBD) detects a problem with the engine, emission system or transmission, it triggers the check engine light to come on.

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 OBD2 scanner.

In some cases, Subaru check engine light is accompanied by a flashing Cruise Control or Vehicle Dynamics Control 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. To prevent additional damage, start looking for a good place to safely pull over and turn the engine off.

Common Causes

subaru check engine light causes maf sensor

Subaru check engine can be caused by a number of problems. It can be something as simple as a loose fuel tank cap to a clogged catalytic converter. Common causes that trigger Subaru check engine light 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 to long to warm up.
  • Oil level low - prolonged oil changes, oil light may also come on

How to Read Engine Fault Codes

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 located under 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. diagnose subaru check engine light
  4. Select READ CODES on your scanner to retrieve stored codes. This video shows you how to use Launch Creader Diagnostic Scanner which is capable of diagnosing Engine, Transmission, Airbag, and ABS problems. Subaru engine codes can be retrieved even with a cheap OBD-II Scanner.
    Missing media item.
  5. 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.


Auto part stores such as Autozone, Advance Auto Parts and PepBoys read fault codes free of charge.

Common Fault Codes

Subaru ignition packThe following problems seem to affect primarily Subaru vehicles such as: Forester, Impreza, Outback, Ascent, Legacy, WRX, 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 usually accompanied by rough idle. Bear in mind that low oil level or sludged oil can trigger this code, as well.
  • P1443 - this code will indicate a faulty EVAP control solenoid. In most cases, you will experience fuel-up cut-offs while refilling. Replacing the faulty 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. Things like dirty MAF sensor, intake leaks or low fuel pressure can trigger this code as well. 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 dirty fuel injector, weak fuel pressure regulator, faulty MAF or bad upstream 02 sensors.
  • P0172 - is similar to above, but indicating a lean running engine. The difference is that dirty air filter or leaking fuel injectors are additional possible causes.
  • P0031 and P0032 - this code means that the upstream 02 sensor heater element is not working. This can be caused by a faulty heater circuit, damaged 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 or a dozen other things. Get an opinion of an experienced Subaru mechanic before you start replacing parts.
  • P0300 P0301 P0302 P0302 P303 P0304 these are engine misfire codes. Often caused by a faulty spark plug but it can also be caused by a bad MAF, blown head gasket, clogged catalytic converter, spark plug wires, etc.

Many newer Subarus might have a check engine light on and 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

Missing media item.

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

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

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 have a devastating effect on 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 for a few minutes to turn off Subaru check engine light. While this procedure will turn off your Subaru check engine light it is not recommended because it clears codes that would be helpful for diagnostics purposes.

In addition, 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 on its own within two to three days. No need to disconnect the battery. 

Also keep in mind that if the problem hasn't been fixed, your Subaru check engine light will come back on.

You will not be able to pass a state emission test if you recently disconnected the battery or cleared the codes with an OBD2 scanner. Fix the underlying problem then drive the car for a few days before you take 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 let you know that the cruise control is disabled due to the engine malfunction. Other lights such as the traction control light 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 that is meant to be disconnected. Connecting it will send the car into a so-called test mode.

A check engine light will be flashing rapidly but no codes will be stored. In addition, engine cooling fans will be turning 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? 

The first thing you should when your Subaru check engine light comes on is to tighten the gas cap. You should continue driving only if there are no other symptoms.

If the gas cap is not on tight, it could allow vapor 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.

Missing media item.

Replace the gas cap if the seal shows cracks.


Frequently Asked Questions


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

Whenever there is an engine related problem, additional systems such as Cruise control and Vehicle Dynamics Control will be deactivated. This is done system avoid additional driveability problems, as well as to gain driver™s attention. Your Subaru is designed to deactivate these systems to 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?

In cold weather, you could have a ˜check engine™ light that is accompanied with 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 sorts of driveability issues.


Why are 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 it is possible to reset Subaru check engine light by disconnecting the battery, this does not fix the problem. If the underlying problem is not fixed the light will come back on. Depending on the problem it could come back as soon as you restart the car or a week latter.




We hope you found this guide helpful. Please consider showing your support for YOUCANIC by subscribing to our YouTube channel.

Thank you! 

Member since 2020-09

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.

Member since 2020-09

I just purchased a new 2019 subaru impreza in September of 2019, today April 16th at 10 pm it broke down on my way to work and caused me to miss work and also now miss getting my holiday pay but it broke down halfway between home and work and was unable to walk to either, I was going up a hill like I always do to go to work and do every week and has ran fine until this normal hill tonight when it stalled when I went to go up to a higher speed when it turned into 40 mph from 30 mph and the check engine light, traction control, battery, and oil light all came out when stalled. I turned the car off and tried starting it and it just choked over and over again. No warning signs before that and drove it just a couple days before that, started fine also and ran fine up until that usual minor hill i go up. Only has 3,510 miles on it and rpms went below 1,000 when it stalled, i plugged in my OBDII reader i always keep in my trunk and no codes showed up yet 4 lights were on and my car wouldn't start and randomly stalled with no warning signs. Anybody have a base model 2.0 i 2019 subaru impreza they have also had this issue with? My oil checked out good, still has factory oil in it and still light since I hardly drive, I thought maybe a bad tank of gas but I already went through half a tank of that gas in there and it had ran fine, not sure if it's a factory defect since everything looked ok under the hood when I checked it, just upset it happened on my way to work of all places after every week I've been driving it to work 4 days a week with no issues since September of 2019.