Go-Parts
Cart 0
Your cart is empty
Add an item to see it appear here.
Wrenchy
Go-Parts Garage
Expert guides for diagnosing, troubleshooting, and replacing auto parts Expert guides for diagnosing and replacing auto parts
Browse All →
🎬 Helpful Videos 🛍️ Shop This Part

P0021 on 2005-2019 Subaru Legacy / Outback: Camshaft Timing Fixes

On most 2005-2019 Subaru Legacy/Outback models, P0021 is most often caused by low or dirty engine oil, or a failing Oil Control Valve (OCV) on the driver's side. An oil change and/or a new OCV (around $100-$160 for the part) are the most common fixes. For turbo EJ25 engines (Legacy GT/Outback XT), tiny hidden oil filters in banjo bolts are a notorious cause and should be removed.

21 minutes to read 2005-2019 Subaru Legacy / Outback
Most Likely Cause
Low or Dirty Engine Oil
Difficulty
2/5
Est. Time
1.5 hrs
DIY Doable?
✅ Yes
Shop Labor
$100 – $500
Parts Price
$10 – $200
⚠️ Drivable, but... — You can drive, but it's not recommended for long. Continued driving can lead to rough idling, stalling, poor fuel economy, and potential long-term damage to the engine or catalytic converter. The vehicle will almost certainly enter a 'limp mode,' disabling cruise control and traction control, which is indicated by a flashing cruise light and a solid traction control light.
Key Takeaways
  • Always check your engine oil level and condition first; it's the most common cause and the easiest fix.
  • The second most likely cause is a faulty Oil Control Valve (OCV) on the driver's side of the engine.
  • A simple and effective diagnostic step is to swap the driver's side and passenger's side OCVs to see if the trouble code follows the part (changes to P0011).
  • If you have a turbocharged Legacy GT or Outback XT (approx. 2005-2012), the tiny filters in the oil line banjo bolts are a known problem and should be inspected and likely removed.
The code P0021 stands for "'A' Camshaft Position – Timing Over-Advanced or System Performance (Bank 2)". On a Subaru boxer engine, Bank 2 is the driver's side (left-hand side). This code means the Engine Control Module (ECM) has detected that the intake camshaft on the driver's side is more advanced (rotated further ahead) than it is commanding it to be. This issue is related to Subaru's Active Valve Control System (AVCS), which uses oil pressure to change camshaft timing for better performance and fuel economy. An over-advanced condition means the valve is opening too soon.

What's Unique About the 2005-2019 Subaru Legacy / Outback

A 2005-2019 Subaru Legacy or Outback engine bay showing the AVCS system components.
The 2005-2019 Subaru Legacy and Outback models utilize the AVCS system, which is highly sensitive to oil quality across the EJ, EZ, and FB engine families.

The P0021 code is very common on these Subaru models because the AVCS system is highly sensitive to oil level and cleanliness. Some EJ25 and FB25 engines are known for oil consumption, making low oil a frequent trigger. On older EJ25 turbo engines (like those in the Legacy GT and Outback XT), tiny mesh filters inside banjo bolts for the oil lines are a notorious failure point; they clog with sludge or break apart, starving the AVCS system of oil and causing this code. Subaru even issued a Technical Service Bulletin recommending their removal. Newer FB25 and EZ30 engines do not have the same banjo bolt filter issue, but can still suffer from sludged OCVs due to extended oil change intervals.

Generation note: This range covers multiple generations of the Legacy and Outback, with three key engines: - EJ25 (approx. 2005-2012): Found in Legacy GT/Outback XT (turbo) and non-turbo models. These use a timing belt. The turbo models are particularly known for banjo bolt filter issues that cause P0021. A TSB was issued for this problem. The OCV for these engines is typically part number 10921AA080. - EZ30 (approx. 2005-2009): A 6-cylinder engine found in higher-trim models like the Outback 3.0R. It uses a timing chain. While it doesn't have the turbo banjo bolt issue, it is still susceptible to OCV failure from dirty oil. - FB25 (approx. 2013-2019): The modern 4-cylinder engine. It uses a timing chain and has a different OCV design than the EJ, but is still very sensitive to oil level and quality. The OCV for these engines is typically part number 10921AA230 or its successor, 10921AA231.

Symptoms You May Notice

  • Check Engine Light is on
  • Blinking cruise control light
  • 🎬 Watch: Why your cruise control light is flashing
  • Traction control/VDC light is on
  • Rough or unstable idle
  • Engine hesitation or stumbling on acceleration
  • Engine stalling, especially when coming to a stop
  • Hard starting
  • Decreased fuel economy
  • Rattling or unusual noise from the engine, especially around 2,000 RPM under light load
⚠️ Don't Waste Money on the Wrong Fix
  • Replacing the Camshaft Position Sensor. While a sensor *can* fail, it is much less common than oil-related issues or a bad OCV. A faulty sensor would also likely throw a different set of codes (e.g., P0345). Many owners replace this sensor first, only for the code to return.

Most Likely Causes

Comparison between a clean, functional oil control valve and one clogged with thick oil sludge.
A clean oil control valve (left) compared to a failed unit clogged with sludge (right). Contaminated oil is the primary cause of P0021 codes in Subaru engines.
  1. Low or Dirty Engine Oil 🔴 High Probability The AVCS system is entirely dependent on oil pressure. Many of these Subaru engines, particularly the FB25, can consume oil between changes, making a low oil level a very common trigger. Old, sludgy oil can clog the small passages in the OCV solenoid, causing it to stick.
    How to confirm: Check the oil dipstick. Note the level and the condition of the oil. If it's low, black, or gritty, this is your likely starting point. An oil change is often the first and cheapest fix.
    Typical fix: Top up the oil to the correct level. If the oil is old or dirty, perform a complete oil and filter change using the manufacturer-specified viscosity (e.g., 5W-30 for EJ25 Turbo, 0W-20 for FB25).
    Est. part cost: $40-$90
  2. Failing Oil Control Valve (OCV) / AVCS Solenoid 🔴 High Probability The OCV for Bank 2 (driver's side) can get clogged with sludge or fail electrically, causing it to stick in the advanced position. This is the most common mechanical part to fail for this code.
    How to confirm: A definitive test is to swap the driver's side (Bank 2) OCV with the passenger's side (Bank 1) OCV. Clear the codes and drive. If the code returns as P0011 (the Bank 1 equivalent), you have confirmed 🎬 See how to diagnose and fix AVCS timing issues the OCV is faulty. You can also test its resistance with a multimeter (should be around 6.9-7.9 ohms). Some technicians apply 9V or 12V directly to the solenoid terminals to listen for an audible 'click', confirming mechanical operation.
    Typical fix: Replace the Bank 2 Oil Control Valve and its O-ring/gasket. It is typically held by one or two 10mm bolts and is easily accessible on the front of the engine.
    Est. part cost: $100-$160
  3. Clogged Banjo Bolt Filters (EJ25 Turbo Engines) 🟡 Medium Probability On turbocharged EJ25 engines (Legacy GT/Outback XT), small mesh filters are located inside the banjo bolts that supply oil to the AVCS and turbo. These filters are notorious for clogging with debris or disintegrating, which then starves the OCV and turbo of oil. This was such a common issue that Subaru issued TSB #02-110-10R advising their removal.
    How to confirm: Locate and remove the banjo bolts for the Bank 2 AVCS oil line. One is on the front of the driver's side head, and another may be on the back of the head supplying the turbo. Inspect for the presence of the filter and check if it is clogged or has come apart. Many owners and dealer techs remove them as a preventative measure.
    Typical fix: Remove the banjo bolt, use a pick or small screwdriver to extract and discard the mesh filter screen, and reinstall the bolt with new copper crush washers.
    Est. part cost: $5-$15 (for new crush washers)

Rare But Worth Checking

  • Stretched Timing Chain / Skipped Timing Belt: While less common than oil issues, a stretched chain (on FB/EZ engines) or a timing belt that has skipped a tooth (on EJ engines) can cause the physical camshaft timing to be off, triggering this code. This is a more serious mechanical issue that requires significant labor.
  • Failed AVCS Cam Sprocket (Phaser): The sprocket itself, which is hydraulically adjusted by the OCV, can fail internally and get stuck in the advanced position. This is an expensive and labor-intensive repair, often considered after all other possibilities have been exhausted.
  • Clogged Oil Pickup Tube Screen: If the oil pickup tube screen in the oil pan becomes clogged with sludge or debris (sometimes from a failed turbo), it can reduce overall oil pressure to the entire engine, starving the AVCS system and causing P0011 and P0021 to appear together.

Diagnosis Steps

A technician testing or locating the Bank 2 oil control valve on a Subaru engine.
Locating the Bank 2 (driver's side) Oil Control Valve. Swapping this unit with the Bank 1 side is a definitive way to confirm a mechanical failure.
  1. Check Engine Oil Level and Condition: This is the first, easiest, and most important step. If the oil is low, top it off, clear the code, and see if it returns. If the oil is dirty or past its change interval, perform a full oil and filter change with the correct viscosity oil.
  2. Scan for Other Codes: Use an OBD-II scanner to see if any other codes are present. P0011 or P000C appearing alongside P0021 provides important diagnostic clues.
  3. Swap the Oil Control Valves (OCVs): Swap the Bank 2 (driver's side) OCV with the Bank 1 (passenger's side) OCV. They are identical parts. Clear the codes and drive the vehicle. If the code changes to P0011, the OCV is confirmed to be the faulty part. This is the most definitive and cost-effective test for the OCV.
  4. Inspect Banjo Bolt Filters (EJ25 Turbo Models Only): If you have a 2005-2012 Legacy GT or Outback XT, locate and inspect the AVCS oil line banjo bolts for clogged or damaged filter screens. The primary one is on the front of the driver's side cylinder head. It is highly recommended to remove the screens permanently.
  5. Test the OCV Connector and Solenoid: Check the wiring and connector for the Bank 2 OCV for damage or oil contamination. With a multimeter, check for ~12V at the connector with the ignition on. Check the solenoid's resistance (should be ~7-8 ohms). You can also briefly apply 12V power to the solenoid to listen for a click.
  6. Inspect Timing Components: If the above steps do not resolve the issue, the problem may be more severe, such as a jumped timing belt, stretched timing chain, or a faulty AVCS cam sprocket. This level of diagnosis often requires a professional mechanic.

Parts You'll Likely Need

  • Oil Control Valve / AVCS Solenoid (OEM #10921AA231 (for FB25), 10921AA080 (for EJ25 Turbo)) — This solenoid is the most common part to fail. It gets clogged with sludge or fails electrically, causing it to stick and prevent proper control of the camshaft timing.
    Trusted brands: Subaru (OEM), Denso (OEM supplier), Dorman
    OEM price range: $110-$160
    Aftermarket price range: $60-$100
  • Engine Oil and Filter — Low, dirty, or incorrect viscosity oil is the number one cause of this code. Using the correct OEM-specified oil is critical for AVCS operation.

Related Codes That Often Appear With This One

  • P0011 — This is the equivalent code for Bank 1 (passenger side). If P0011 and P0021 appear together, it strongly points to a systemic oil problem like extremely low oil level, low oil pressure (e.g. clogged pickup tube), or severe sludge, as it's unlikely both OCVs failed at once.
  • P000C — This code means 'A' Camshaft Position Slow Response (Bank 2). It often appears with P0021 and points directly to a problem with the OCV or oil flow on the driver's side, often due to sludge or a failing solenoid.

Technical Service Bulletins (TSBs) & Recalls

A tiny mesh filter removed from a Subaru turbo banjo bolt, heavily clogged with oil debris.
The notorious mesh filters found inside EJ25 turbo banjo bolts. These frequently clog and starve the AVCS system of oil, triggering P0021.
  • TSB #02-110-10R: Addresses the removal of banjo bolt filters on EJ25 turbo engines.
  • TSB #02-163-16R: Provides updated diagnostic procedures for various AVCS-related trouble codes.

Platform-Specific Known Issues

  • Banjo Bolt Filter Removal (EJ25 Turbo): On turbocharged EJ25 engines (2005-2012 Legacy GT/Outback XT), Technical Service Bulletin #02-110-10R was issued regarding the banjo bolt filters for the AVCS oil lines. The official recommendation is to remove these filters to prevent oil starvation to the AVCS solenoids and turbocharger, which can lead to catastrophic failure. Many owners have experienced turbo failure shortly after these codes appear if the issue is not addressed.
  • OCV Part Number Changes (FB25): For the FB25 engine (2013-2019), the original OCV part number was 10921AA230, which was later superseded by 10921AA231 and then 10921AA23B. When replacing, it's best to use the latest part number available from Subaru.

Mechanic-Grade Diagnostic Values

  • Oil Control Valve (OCV) Solenoid Resistance — expected: 6.9 - 7.9 Ω (Ohms) at 68°F (20°C). Failure: A reading outside this range (open circuit or short) indicates a failed solenoid.
  • OCV Connector Voltage (Key On, Engine Off) — expected: ~12V (Battery Voltage) on the power supply pin.. Failure: No voltage suggests a wiring or relay issue upstream of the solenoid.
  • Scan Tool Live Data: 'L. IN VVT ADV ANG' vs. 'Target L. IN VVT ADV ANG' — expected: The actual advance angle should closely track the target angle commanded by the ECM within a few degrees.. Failure: A large, persistent gap between the actual and target angle when the OCV duty cycle is high points to a mechanical or hydraulic fault (clogged passage, bad phaser).
  • Scan Tool Live Data: 'L. OCV DUTY' — expected: The duty cycle will vary based on engine load and RPM. At idle, it should be low (e.g., <10%).. Failure: If the ECM commands a high duty cycle (e.g., >75%) but the cam angle doesn't change, it indicates the system is trying to make a correction but can't due to a blockage or mechanical failure.

Scan Tool Commands That Help

  • Subaru Select Monitor (SSM) or equivalent professional scan tool (e.g., Autel, Snap-on): AVCS Active Test / Actuator Test — This bidirectional command allows a technician to manually increase the OCV duty cycle while the engine is idling. You can command the Bank 2 solenoid to activate and watch the 'L. IN VVT ADV ANG' live data PID. If the angle changes as commanded, the OCV, wiring, and oil passages are likely okay. If the angle doesn't change, it confirms a fault in that circuit or the mechanical phaser.

Wiring & Ground Locations

  • Bank 2 (Left) OCV Connector — On the front of the driver's side cylinder head, connected to the Oil Control Valve.. This is the direct electrical connection to the component most likely to be at fault. The two pins are for power (from the main relay) and the ground-side control signal from the ECM. Checking for voltage here and for continuity/resistance through the solenoid are key diagnostic steps. The plastic connector can become brittle with age and crack, causing intermittent connection issues.

Real Owner Repair Stories

  • SubaruOutback.org forum user reports (2013 Outback 2.5i (FB25)) — P0021 code, rough idle.
    ❌ Tried (didn't work) Oil and filter change., Replacing the Bank 2 OCV with a cheap aftermarket part from an online marketplace., Replacing the OCV a second time with another aftermarket brand.
    ✅ What actually fixed it After two failed attempts with aftermarket parts, the owner purchased a genuine Subaru OEM Oil Control Valve (p/n 10921AA231). Installing the OEM part immediately resolved the code and idle issues. This highlights a common pitfall where low-quality aftermarket solenoids do not operate within the ECM's expected parameters.
  • LegacyGT.com forum user reports (2005 Legacy GT (EJ25 Turbo)) — P0011 and P0021 appeared immediately after a DIY timing belt replacement.
    ❌ Tried (didn't work) Clearing the codes (they returned instantly)., Checking oil level., Swapping OCVs side to side.
    ✅ What actually fixed it The root cause was improper alignment of the AVCS camshaft sprockets during the timing belt installation. The intake cams were not correctly positioned relative to the exhaust cams before the belt was tensioned. The owner had to disassemble the timing components and re-time the engine according to the factory service manual, paying close attention to the specific marks on the AVCS gears, which resolved the codes.

OEM Part Supersession History

  • 10921AA23010921AA231 — Internal design revision for improved reliability/performance.
    Heads up: None. The new part is a direct, backward-compatible replacement for the old one.

Model Year Variations Within This Range

  • 2013-2014 (approx.): Early production FB25 engines in the Legacy/Outback were known for excessive oil consumption due to piston ring design. This makes the 'Low Engine Oil' cause for P0021 particularly probable for these specific model years, even if the owner follows standard oil change intervals.
  • 2005-2012 (EJ25 engines): These engines use a timing belt. The AVCS cam sprockets must be correctly aligned during a timing belt service. Failure to follow the specific procedure can lead to the cams being slightly mistimed, causing P0021 or P0011 immediately after the job is completed.

Diagnostic Flowchart

Start by checking the most common and simplest cause: engine oil. The Subaru AVCS (Active Valve Control System) is highly sensitive to oil level and condition, and this step alone often resolves the code.
→ This is the most common cause. Top up or perform a full oil and filter change using the correct viscosity oil (e.g., 5W-30 for EJ25 Turbo, 0W-20 for FB25). Clear the code and drive to see if it returns.
The next likely culprit is the Bank 2 Oil Control Valve (OCV). The most definitive test is to swap it with Bank 1. How do you want to proceed?
After swapping the OCVs, clearing the codes, and driving, what code returned?
→ This confirms the OCV is faulty. Replace the original Bank 2 (driver's side) OCV. For FB25 engines (2013+), ensure you use the latest part number (e.g., 10921AA23B).
The OCV is likely good. The next step is engine-specific. Which engine is in your vehicle?
→ Inspect the AVCS oil line banjo bolt on the driver's side cylinder head. Per Subaru TSB #02-110-10R, the internal mesh filter is known to clog. It is recommended to remove and discard this filter, then reinstall the bolt with new crush washers.
→ The issue may be in the wiring to the OCV or a more serious mechanical problem like a faulty AVCS cam sprocket or stretched timing chain (common on FB25). Check the OCV connector for ~12V and inspect wiring. If wiring is good, consult a professional.
→ The issue may have been intermittent or caused by a poor connection. Continue to monitor the vehicle. If the code returns, restart this diagnosis.
With a multimeter, what is the resistance between the two pins on the Bank 2 OCV solenoid?
→ The resistance is correct. You can also briefly apply 12V to the terminals to listen for a 'click'. If it clicks, the solenoid is likely working. The most definitive test is still to swap it with the Bank 1 OCV to see if the fault follows the part.
→ The solenoid has failed its electrical test. Replace the Bank 2 OCV. For FB25 engines, use the latest part number (e.g., 10921AA23B).

Used vs. New Parts: Buying Guide for This Vehicle

When a used part is the smart pick: For this specific repair, using a used part is strongly discouraged. The key failure components (OCV, AVCS Sprocket) are wear-and-tear items sensitive to the oil quality and maintenance history of the donor car, which is unknown. The cost savings are minimal compared to the high risk of the used part failing quickly.

Donor-vehicle mileage cap: roughly under 50000 miles for the part to have meaningful remaining life.

What to inspect on the donor part:

  • If considering a used OCV, insist on seeing the donor vehicle's maintenance history.
  • Visually inspect the screen on the used solenoid for any sludge or debris. If it's not perfectly clean, do not buy it.
  • Test the resistance of the used solenoid with a multimeter before purchase. It must be within the 6.9-7.9 Ohm spec.

OEM-only on this vehicle (don't cheap out):

  • Oil Control Valve (OCV) / AVCS Solenoid
  • AVCS Cam Sprocket (Phaser)

Aftermarket brands forum-validated for this vehicle:

  • Denso (often the OEM supplier for Subaru electrical components)

Brands owners have reported issues with on this vehicle:

  • Unnamed or 'white-box' brands from online marketplaces (e.g., Amazon, eBay) have a high reported failure rate in forum discussions.

Real Owner Stories

Aggregated from forums and TSBs cited above. Mileages and costs reflect what owners reported in those sources.

2017 Subaru Legacy

Symptoms: Check Engine Light was on, along with the ABS and brake lights. The cruise control light was blinking. The scanner showed codes P0021 and P000C.

What fixed it: An oil change did not solve the issue. A technician recommended the next step was to 'replace the cam solenoid' (OCV/AVCS solenoid) and monitor live data on a test drive.

Source hint: Reddit r/subaru thread titled 'codes p0021 and p000c'

Frequently Asked Questions

I have a Legacy GT with a P0021 code. What is this TSB about banjo bolt filters?
On turbocharged EJ25 engines (Legacy GT/Outback XT), Subaru issued Technical Service Bulletin #02-110-10R advising the removal of the small mesh filters inside the AVCS oil line banjo bolts. These filters are known to clog or disintegrate, starving the AVCS system and turbo of oil, which can lead to catastrophic failure.
How can I test the Oil Control Valve (OCV) on my Outback before buying a new one?
The most definitive test is to swap the driver's side (Bank 2) OCV with the passenger's side (Bank 1) OCV. They are identical parts. Clear the codes and drive. If the code returns as P0011 (the Bank 1 equivalent), you have confirmed the OCV is faulty.
Why are my cruise control and traction control lights on with the Check Engine Light?
On these Subaru models, it is normal for the cruise control light to blink and the traction control/VDC light to illuminate whenever the Check Engine Light is triggered. This is a default safety feature and does not necessarily indicate a separate problem with those systems.
Could simply having low oil cause the P0021 code?
Yes, absolutely. The AVCS system is entirely dependent on oil pressure. Many of these Subaru engines, particularly the FB25, can consume oil. A low oil level is a very common trigger for P0021, and performing an oil change or topping up the oil is the recommended first step in diagnosis.
I'm replacing the OCV on my 2015 Legacy (FB25 engine). Is there a specific part number I should look for?
Yes, for the FB25 engine, the original OCV part number (10921AA230) was superseded by 10921AA231 and then 10921AA23B. It is recommended to use the latest part number available from Subaru to ensure you have the most updated version.
What is the correct electrical resistance for the AVCS / OCV solenoid?
According to the diagnostic information, the resistance for the solenoid should be approximately 6.9-7.9 ohms when tested with a multimeter.
Banjo Bolt Removal (Turbo Oil Feed Union Screw) 2005-2009 Legacy GT / Outback XT
Banjo Bolt Removal (Turbo Oil Feed Union Screw) 2005-2009 Legacy GT / Outback XT
Subaru Check Engine Light And Cruise Control Flashing (How To Fix)
Subaru Check Engine Light And Cruise Control Flashing (How To Fix)
Fix P0021 Code FAST Before It's Too Late!
Fix P0021 Code FAST Before It's Too Late!
Causes and Fixes P0021 Code: "A" Camshaft Position - Timing Over-Advanced (Bank 2)
Causes and Fixes P0021 Code: "A" Camshaft Position - Timing Over-Advanced (Bank 2)
Subaru P0012 P0021 FIXED! AVCS Timing Problem Explained
Subaru P0012 P0021 FIXED! AVCS Timing Problem Explained
Wrenchy
Article researched & written by
Go-Parts' AI research assistant. Every article is backed by live web research, verified OEM data, and real technician knowledge — so you get accurate, up-to-date information you can trust.
Meet Wrenchy → Updated Jul 29, 2026

The information in this article is provided for general reference and educational purposes only. Vehicle specifications, procedures, and part compatibility can vary by production date, trim level, and region. Always consult your vehicle's factory service manual and verify part numbers before purchasing or performing repairs. Safety-critical components such as airbags, seat belts, and braking systems should be installed by a qualified professional.

Year Coverage
This article covers the OBD-II Code P0021 for:
  • Subaru Legacy / Outback: 200520062007200820092010201120122013201420152016201720182019
In this article
🎬 Helpful Videos
Jump to ▴

Email This Guide

We'll send you a link to this article so you can read it later or share it.

Added to cart · Part