Skip to main content

Subaru Check Engine Light Stays On

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

Subaru Check Engine Light Stays On
DIFFICULTY Intermediate

What does the 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.

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.

In some cases, the 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 place to pull over and turn the engine off safely.

Common Causes

subaru check engine light causes maf sensor

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

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 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.
  4. Select READ CODES on your scanner to retrieve stored codes. 
  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.

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. Bear in mind that low oil levels or sludged oil 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. Things like 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 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 this, damaged wiring, or a blown a 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. It is often caused by a faulty spark plug, 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.

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 the Subaru check engine light.

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

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, keep in mind that your Subaru check engine light will come back if the problem hasn't been fixed.

You will not 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 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 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 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.

Also, 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? 

When your Subaru check engine light comes on, the first thing you should do is to 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.


There are hundreds of possible problems that can cause 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

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 systematically to avoid additional driveability problems and gain the 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?

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 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 the Subaru check engine light by disconnecting the battery, this does not fix it.

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 later.




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.


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.

Add new comment

Plain text

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