Subaru Check Engine Light Problems

Vehicle:   Subaru
Difficulty: ⚫⚫⚫⚪⚪
DIY Cost:
Est. Time: 30 min

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, 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 good 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 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 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 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, capable of diagnosing Engine, Transmission, Airbag, and ABS problems. Subaru engine codes can be retrieved even with a cheap OBD-II Scanner.
  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 Codes That Trigger Subaru CEL

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

  • 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. 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 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. A faulty heater circuit can cause this, 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 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 on and cruise light flashing after a battery change. In most cases, this is caused by a blown a 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, it means 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 would 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 on its own within two to three days—no need to disconnect the battery. 

Also, keep in mind that your Subaru check engine light will come back on 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 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.

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? 

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 tight, it could 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.

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?engine-related

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

You could have a check engine light in cold weather that is 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.




By YOUCANIC Automotive Experts
Nov 2020