The Subaru check engine light just came on.
Subaru builds some of the most loyal owners in the automotive world — and part of being an informed Subaru owner means understanding the specific fault patterns unique to the horizontally-opposed boxer engine that defines the brand. This guide covers what the light means, the EJ and FB engine-specific issues you need to know about, and the most common fault codes across the Subaru lineup.
What the Subaru Check Engine Light Means
Every modern Subaru monitors engine management, emissions, fuel delivery, ignition, and transmission through its OBD2 system. When a monitored parameter falls outside expected range and stays there, the ECM logs a Diagnostic Trouble Code (DTC) and illuminates the malfunction indicator lamp.
One Subaru-specific behavior worth knowing: when the check engine light activates on a Subaru, cruise control is automatically disabled as a safety measure. A flashing [S] light on newer models like the 2023+ Forester indicates that EyeSight driver assistance systems have also been temporarily deactivated due to the detected fault.
Steady vs. Flashing
A steady check engine light means a fault was logged and needs diagnosis soon but doesn't require immediate stoppage in most cases.
A flashing check engine light means active misfires — stop driving as soon as safely possible. On the boxer engine with its close-coupled catalytic converters, misfires degrade the converter faster than on conventional inline engines.
The Boxer Engine and Why It Matters for Diagnosis
Subaru's horizontally-opposed (boxer) engine layout creates diagnostic characteristics different from inline or V-configuration engines:
- The catalytic converters sit very close to the engine due to the low-profile boxer layout, subjecting them to higher heat than typical
- Head gasket failures on boxer engines are affected by the vertical gasket orientation — coolant can seep past the gasket and pool in ways that wouldn't happen on a conventional engine
- Spark plug and ignition coil access is more difficult, adding labor time to misfire-related repairs
- AVCS (Subaru's variable valve timing system) oil passages are small and sensitive to sludge from extended oil change intervals
For complete Subaru diagnosis including AVCS system codes, a professional multi-brand scanner like the Launch X431 provides full system access. Standard OBD2 readers work for basic P-codes, but Subaru AVCS faults and multi-module diagnostics benefit from a proper professional tool.
What to Do Right Now
If your check engine light is on but the car runs fine, here's the right sequence:
Step 1: Note whether the light is steady or flashing. Flashing changes everything — see above.
Step 2: Pull the codes before you do anything else. Even if the car feels perfect, a scan takes five minutes and tells you exactly what you're dealing with. Don't drive around guessing.
Step 3: Look up the code. A P0456 (small EVAP leak) is low urgency. A P0301 (misfire) needs attention now. The code determines the timeline.
Step 4: Fix the actual fault. Not the light — the fault. The light is just the notification.
Step 5: Clear the codes and verify. After the repair, clear the codes with a scan tool and confirm the OBD readiness monitors return to "Ready" after a drive cycle. If they do and the light stays off, the repair worked.
Can I Do It Myself?
You don't necessarily need to go to the dealership. A professional OBD2 diagnostic scanner allows you to quickly determine the cause of the warning light before spending money on unnecessary repairs or diagnostic fees.
Check Engine Light On? Save Money by Reading Fault Codes at Home.
Scan any OBD2 vehicle in under 30 seconds with the Launch X431 CR319. Compact enough to live in your glove box, powerful enough to skip the dealership.
→ Get Your Diagnostic Scanner10 Most Common Subaru Check Engine Light Causes
1. Gas Cap / EVAP Leak — P0440 / P0442 / P0455 / P0456
The most common and most benign cause. Tighten the gas cap first. If the code persists after a few drive cycles, inspect the EVAP hoses and purge valve.
Estimated cost: $0–$300
2. Head Gasket Failure — P0128, P0300–P0304
This is the Subaru-specific issue that every EJ-engine owner needs to understand. The EJ25 engine (2.5L boxer, used in Legacy, Outback, Forester, and Impreza from the mid-1990s through the early 2020s) is infamous for head gasket failure, particularly the naturally-aspirated versions.
The check engine light doesn't always illuminate immediately when a head gasket starts to fail. However, as the failure progresses, you'll typically see misfire codes (P0300–P0304) and cooling system codes (P0128 — thermostat/coolant temperature below threshold). Combine these with:
- External coolant drips at the head/block junction
- Gradual coolant loss with no visible puddle
- White exhaust smoke
- Overheating
...and you have the classic EJ head gasket failure presentation.
Do not continue driving a Subaru that is overheating or losing coolant. The aluminum cylinder heads on boxer engines can warp after a single severe overheat event. A head gasket repair costs $1,500–$2,500. Waiting until the engine overheats catastrophically can cost $5,000+.
Affected models: primarily 2000–2012 EJ25 in Outback, Legacy, Forester, Impreza. Updated multi-layer-steel head gaskets are now the standard replacement.
3. Misfires — P0300 Through P0304
Beyond the head gasket scenario, misfires on Subaru trace to the same causes as other brands: worn spark plugs, failing ignition coil packs, fuel injector issues. The boxer engine typically requires spark plug replacement every 60,000 miles. Replace all four spark plugs and coil packs together when one fails — they age together on the boxer layout.
On EJ-series engines (WRX, STI), rod knock from bearing wear can also trigger misfire codes. This is accompanied by a metallic knocking sound that intensifies under load — a significantly more serious situation.
Estimated cost: $200–$500 for plugs and coils. Much more if internal engine work is involved.
4. Oxygen Sensor — P0130 / P0136 / P0141 / P0161
Oxygen sensor failures are common on higher-mileage Subarus. On the EJ25, a failing front O2 sensor can also trace to a blown fuse for the O2 heater control circuit or a poor electrical contact at the connector.
Estimated cost: $150–$400
5. AVCS (Variable Valve Timing) — P0010 / P0011 / P0012 / P0020
AVCS (Active Valve Control System) is Subaru's variable valve timing system, found on EJ25 engines from 2006 onward and throughout the FB engine lineup. The most common AVCS fault codes indicate timing over-advance on the intake or exhaust camshaft.
Common causes:
- Clogged or failing AVCS solenoid — the most frequent cause
- Clogged filter in the banjo bolt for the oil feed line on the AVCS solenoid
- Sludge buildup from infrequent oil changes clogging small AVCS oil passages
- Stuck AVCS cam gear unable to actuate
Important: On Subaru AVCS systems, always check the banjo bolt filter screen — it's a tiny mesh screen that clogs with oil debris and is often overlooked. Clean or replace it before condemning the solenoid.
Estimated cost: $150–$500
6. Catalytic Converter Efficiency — P0420 / P0430
P0420 is extremely common on Subaru Outbacks with EJ25 engines. The boxer's close-coupled converter positioning exposes it to higher heat than on many other vehicles. The rear converter (Bank 2) typically fails first.
Before condemning the converter, inspect the exhaust manifold for cracks — a manifold leak upstream of the rear O2 sensor produces a false P0420 that looks exactly like converter failure. Cracked exhaust manifolds are a documented weak point on 2000–2010 Subarus.
A P0420 that appeared after a period of running with misfires is almost always genuine converter damage, not a false positive.
Estimated cost: $150–$400 if manifold or O2 sensor resolves it. $800–$1,500 for converter replacement.
7. MAF Sensor — P0101 / P0102
MAF sensor failures are common on higher-mileage Subarus, particularly on models with aftermarket air intakes that may have contaminated the sensor.
Estimated cost: $200–$400
8. System Too Lean — P0171 / P0174
Vacuum leaks are the most common lean code cause on Subaru. Inspect intake boots and hoses for cracking. On high-mileage EJ engines, the PCV system components are also worth inspecting.
Estimated cost: $150–$600
9. EGR System — P0401 / P0403
EGR faults appear on older Subaru models. Carbon buildup in EGR passages is the typical cause.
Estimated cost: $200–$500
10. Thermostat — P0128
A thermostat stuck open prevents the engine from reaching operating temperature, causing P0128. On Subaru, this code is also an early warning signal that can accompany developing head gasket issues — the two shouldn't be treated in isolation on a high-mileage EJ25.
Estimated cost: $200–$400
Quick Reference
| Code | Description | Urgency |
|---|---|---|
| P0440–P0456 | EVAP / gas cap | Low |
| P0128, P0300–P0304 | Head gasket warning combo | High — don't ignore |
| P0300–P0304 | Misfires | High if flashing |
| P0130 / P0136 | O2 sensor | Moderate |
| P0010–P0012 | AVCS timing | Moderate |
| P0420 / P0430 | Catalytic converter | Moderate |
| P0101 / P0102 | MAF sensor | Moderate |
| P0171 / P0174 | System too lean | Moderate |
FAQ
Can I drive my Subaru with the check engine light on?
If steady and the car feels completely normal with no overheating or coolant loss, short distances are generally fine. If you have any cooling symptoms alongside the light, stop driving — on a Subaru EJ25, this combination can indicate early head gasket failure and continuing to drive is genuinely risky.
How do I know if my Subaru has a head gasket problem?
Misfire codes alongside coolant loss or overheating is the classic pattern. A combustion gas test (block test) using a color-change chemical dye in the coolant is the most reliable confirmation method. Any positive result confirms head gasket failure. Don't wait for a dramatic symptom — by then, secondary damage is already happening.
How much does a Subaru head gasket repair cost?
Typically $1,500–$2,500 for a head gasket replacement at a specialist shop, including resurfacing the cylinder heads and installing the updated multi-layer-steel gaskets. Engine replacement costs $5,000+ — it's not a repair to postpone.
How much does a Subaru check engine light diagnosis cost?
$80–$120 at an independent shop. $0 if you read the codes yourself with an OBD2 scanner and the fix is straightforward.



