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 Articles →
🧭 Diagnostic Flowchart 🎬 Helpful Videos 🛍️ Shop This Part

P0010 on 2015-2019 Subaru Legacy 2.5L: Causes and Fixes for the Camshaft Actuator Circuit

On a 2015-2019 Subaru Legacy 2.5L, code P0010 is most often caused by a faulty passenger-side intake Oil Control Valve (OCV), also called a VVT solenoid. Before replacing it, check your oil level, as low or dirty oil is a common trigger. An OEM replacement OCV costs about $90-$140 and is a simple DIY fix (2/5 difficulty). A key indicator of failure is oil found inside the OCV's electrical connector, a known issue addressed by Subaru TSB 02-170-17R.

18 minutes to read 2015-2019 Subaru Legacy
Most Likely Cause
Faulty Intake Oil Control Valve (OCV) / VVT Solenoid (Bank 1)
Difficulty
2/5
Est. Time
1 hrs
DIY Doable?
✅ Yes
Shop Labor
$100 – $350
Parts Price
$40 – $150
⚠️ Drivable, but... — Yes, but address the issue soon. Continued driving may lead to a rough idle, poor acceleration, reduced fuel economy, and potentially failing an emissions test. Ignoring it, especially if caused by oil wicking into the harness as described in TSB 02-170-17R, could lead to more expensive electrical repairs down the line, including harness or ECM replacement.
Key Takeaways
  • P0010 on this Subaru is an electrical circuit code for the passenger-side intake Oil Control Valve (OCV), not a mechanical timing issue.
  • Before buying parts, check your oil level. Low or dirty oil is a common trigger for this code.
  • The most likely fix is replacing the OCV due to a known issue where it leaks oil into its own connector (Subaru TSB 02-170-17R). Check the connector for oil to confirm.
  • The correct replacement OEM part number is 10921AA231. This is a DIY-friendly job that requires basic tools.
  • Do not confuse the Oil Control Valve (solenoid) with the Camshaft Position Sensor; they are different parts.
The trouble code P0010 stands for '"A" Camshaft Position Actuator Circuit / Open (Bank 1)'. For your Subaru's boxer engine, this specifically points to an electrical problem detected by the Engine Control Module (ECM) in the circuit for the intake camshaft's oil control valve (OCV) on Bank 1. Bank 1 is the passenger side of the engine. The ECM continuously monitors the OCV circuit and has detected a short, an open, or an out-of-range resistance value, preventing it from properly controlling the valve timing.

What's Unique About the 2015-2019 Subaru Legacy

The FB25 engine in the 6th generation Legacy uses Subaru's Active Valve Control System (AVCS), which is very sensitive to oil level and condition. A key issue for this platform is documented in Subaru Technical Service Bulletin (TSB) 02-170-17R. It describes how the original Oil Control Valves (OCVs) can leak oil internally through their electrical connector pins. This oil then travels up the wiring harness via capillary action ('wicking'). This oil contamination can cause a short, triggering the P0010 circuit code. 🎬 Watch: Understanding the P0010 code causes and fixes If left unaddressed, the oil can migrate further up the harness, potentially damaging the main engine-to-bulkhead harness connector or even the ECM itself, leading to a much more expensive repair.

Symptoms You May Notice

  • Check Engine Light is on
  • Rough engine idle, sometimes fluctuating or dipping
  • Poor acceleration or hesitation, feeling like a 'flat spot'
  • Decreased fuel economy
  • Engine stalling in some cases
  • Rattling or ticking noise from the engine bay, louder than normal injector tick
⚠️ Don't Waste Money on the Wrong Fix
  • Replacing the Camshaft Position *Sensor* instead of the Oil Control Valve (OCV) / Solenoid. P0010 is a *circuit* code for the actuator (solenoid), not a correlation or position code for the sensor.

Most Likely Causes

  1. Faulty Intake Oil Control Valve (OCV) / VVT Solenoid (Bank 1) 🔴 High Probability Subaru TSB 02-170-17R identifies a known issue where the original OCVs can leak oil through their electrical connector, causing a circuit fault. The replacement part (OEM #10921AA231) has an improved internal seal to prevent this.
    How to confirm: Unplug the electrical connector for the passenger-side intake OCV (the one closest to the front of the car on the passenger side cylinder head). Inspect the connector and the valve's pins for any signs of engine oil. Oil presence is a definitive sign the valve has failed internally and is the cause of the circuit code. You can also test the solenoid's resistance with a multimeter; a healthy valve should read approximately 6.9-7.9 ohms at room temperature.
    Typical fix: Replace the Bank 1 (passenger side) intake Oil Control Valve. If oil is found in the harness connector, clean it thoroughly with electrical contact cleaner and let it dry completely before installing the new valve. Ensure the new OCV comes with a new gasket.
    Est. part cost: $90-$140
  2. Low or Dirty Engine Oil 🟡 Medium Probability The AVCS system is hydraulic and highly dependent on oil pressure and cleanliness. The FB25 engine is known for potential oil consumption, and Subaru considers consumption of up to 1 quart per 1200 miles to be within spec under certain conditions. Low oil levels are a frequent cause of AVCS-related codes.
    How to confirm: Check the engine oil dipstick when the engine is cold and on a level surface. If the level is below the full mark or the oil appears very dark, sludgy, or past its service interval, this could be the cause or a contributing factor.
    Typical fix: Perform an oil and filter change using the correct 0W-20 full synthetic oil specified for the engine. Clear the code and drive to see if it returns.
    Est. part cost: $40-$80
  3. Damaged Wiring or Poor Connection ⚪ Low Probability As described in TSB 02-170-17R, oil leaking from the OCV can degrade the wiring harness insulation over time, leading to shorts. Otherwise, damage can occur from physical abrasion against engine components or rodent activity, as some Subaru wiring uses soy-based insulation that can attract pests.
    How to confirm: Visually inspect the wiring harness leading to the Bank 1 intake OCV. Look for frayed wires, corrosion in the connector, or loose pins. Use a multimeter to check for continuity from the ECM connector to the OCV connector and verify proper voltage at the connector with the key on.
    Typical fix: Repair the damaged section of the wiring harness or replace the connector pigtail. If oil has wicked far up the harness, the entire engine harness may need replacement.
    Est. part cost: $15-$50 for a pigtail, $500+ for a harness

Rare But Worth Checking

  • Faulty Engine Control Module (ECM): This is very rare and should only be considered after all other possibilities, including the OCV, its entire circuit, and the harness have been thoroughly tested and ruled out. Oil wicking all the way from the OCV to the ECM is a potential, though uncommon, cause of ECM failure for this code.

Diagnosis Steps

  1. Check Engine Oil: Verify the oil level is full and the oil is clean. If low or dirty, perform an oil change with 0W-20 synthetic oil, clear the code, and drive to see if it returns. This is a critical first step for any AVCS code.
  2. Inspect OCV Connector: Unplug the electrical connector for the Bank 1 (passenger side) intake OCV. It is the front-most of the two solenoids on the passenger side cylinder head. Carefully inspect both the harness side and the valve side for any signs of engine oil. This is the key indicator for the issue described in TSB 02-170-17R.
  3. If Oil is Present: The OCV is faulty and must be replaced. Purchase the updated OEM part (10921AA231). Thoroughly clean the harness connector with electrical contact cleaner and allow it to dry completely before reconnecting to the new valve.
  4. If No Oil is Present (Electrical Test): The OCV's internal coil may have failed. You can test its resistance with a multimeter. It should be between 6.9 and 7.9 ohms. An open circuit (infinite resistance) or a short (zero resistance) confirms a bad solenoid.
  5. If No Oil is Present (Swap Test): A practical way to confirm a failed OCV is to swap it. The intake OCVs on Bank 1 and Bank 2 are identical. Swap the passenger-side intake OCV with the driver's side intake OCV. Clear the codes and drive the vehicle. If the code changes to P0020 ('A' Camshaft Position Actuator Circuit / Open Bank 2), the OCV you moved is confirmed faulty.
  6. Test the Circuit: If the code remains P0010 after swapping the OCVs, the problem is in the wiring harness or the ECM. Use a multimeter to check for 12V power and a proper ground/signal from the ECM at the connector. Inspect the harness for physical damage.
  7. Replace the Part: Once the OCV is confirmed as the fault, replace it. It is held in by a single 10mm bolt. 🎬 See: How to replace the solenoid on a Subaru Be sure to lightly oil the O-ring on the new valve before installation.
  8. Clear Codes: After the repair, use a scan tool to clear all fault codes and verify the Check Engine Light does not return.

Parts You'll Likely Need

  • Intake Oil Control Valve / VVT Solenoid (OEM #10921AA231) — This is the most common cause of P0010. A known failure pattern involves this part leaking oil into its electrical connector, causing a circuit fault. The OEM part has been updated to fix this issue. This part number supersedes 10921AA230 and 10921AA220. 🎬 Watch: Subaru AVCS oil control valve part number updates
    Trusted brands: Subaru (OEM), Denso (often the OEM manufacturer), Dorman
    OEM price range: $90-$140
    Aftermarket price range: $50-$100
  • 0W-20 Full Synthetic Engine Oil and Filter — Low or dirty oil is a frequent cause of AVCS system faults. An oil change is a critical first diagnostic step and regular maintenance, especially on the FB25 engine which can consume oil.
    Trusted brands: Idemitsu (Subaru OEM supplier), Mobil 1, Pennzoil, Castrol
    OEM price range: $60-$90
    Aftermarket price range: $40-$80

Related Codes That Often Appear With This One

  • P0011 — This code for 'Timing Over-Advanced' can appear if the OCV is failing electrically in a way that also affects its mechanical function (e.g., getting stuck), or if oil pressure/quality issues are severe.
  • P0020 — This is the equivalent circuit code for Bank 2 (driver's side). It will appear if a technician swaps the suspected faulty Bank 1 OCV to Bank 2 for diagnostic purposes, confirming the OCV is the problem.

Technical Service Bulletins (TSBs) & Recalls

  • 02-170-17R: Oil Leaking from AVCS Oil Control Valve

Platform-Specific Known Issues

  • TSB 02-170-17R: This bulletin directly addresses the P0010 code (among other AVCS codes) on 2013-2019 Legacy models. It details how the Oil Control Valve can leak oil into the wiring harness, causing circuit faults. The fix is to replace the valve with a redesigned part (10921AA231) and clean or replace the affected harness.

Mechanic-Grade Diagnostic Values

  • Oil Control Valve (OCV) / VVT Solenoid Resistance — expected: 6.9 to 7.9 Ω at 20°C (68°F). Failure: A reading of 0 Ω indicates a short circuit. An infinite reading (O.L.) indicates an open circuit. Any reading outside the specified range suggests the solenoid's internal coil is faulty.
  • OCV Circuit Voltage (at harness connector) — expected: Approximately 12V (battery voltage) on the power pin and a pulsing ground signal from the ECM on the other pin when the engine is running.. Failure: No voltage on the power pin indicates a break in the power supply circuit. A constant ground or no ground signal on the control pin points to a wiring or ECM driver issue.

Scan Tool Commands That Help

  • Subaru Select Monitor or equivalent professional scan tool (e.g., Autel, Topdon): Active Test / Bidirectional Control for 'VVT CTRL B1' or 'Activate the VVT System (Bank 1)' — This command allows the technician to manually command the OCV to turn ON and OFF. While monitoring engine RPM at idle, activating the solenoid should cause a noticeable stumble or rough idle. If the engine's running condition does not change, it confirms a problem with the OCV itself or the oil passages it controls, assuming the circuit has already been tested and is good.
  • RomRaider (with Tactrix Cable) or other advanced ECU logging software: Live Data Monitoring of 'AVCS Intake Duty Cycle' and 'AVCS Intake Angle' — For advanced diagnosis, a technician can log the commanded duty cycle from the ECM versus the actual resulting camshaft angle. If the ECM is commanding a high duty cycle but the intake angle isn't changing, it points to a mechanical or hydraulic issue (stuck solenoid, clogged passages) rather than an electrical one.

Wiring & Ground Locations

  • GE (Engine Ground) — The primary engine ground points are typically on the intake manifold and the engine block itself.. The ECU, which controls the OCV, relies on a solid ground connection via the intake manifold on many Subarus. A poor or corroded engine ground can cause erratic behavior and fault codes for various sensors and actuators, including the OCV. A common failure point is when TGV deletes or spacers are installed without adding a dedicated ground strap, isolating the upper manifold from the block.
  • OCV Harness Connector — On the front of the passenger-side cylinder head, connected to the forward-most of the two solenoids.. This is the primary inspection point for the oil leak described in TSB 02-170-17R. It is also the point for testing resistance of the solenoid and voltage/continuity of the circuit from the ECM. The connector is a 2-pin type.
  • Solder Joint (in Engine Harness) — Within the engine harness, often located on top of the coolant crossover pipe.. A technician on Reddit noted that the ground wires for the OCVs are joined at a solder point inside the harness. If oil wicks far enough from a leaking OCV, it can contaminate this joint, causing an open circuit or high resistance that would trigger P0010. This can sometimes present as an oily spot on the harness wrap in this area.

Real Owner Repair Stories

  • Reddit user in r/subaru (2017 Legacy 2.5 Sport) — Check Engine Light with code P0010. Light would return after clearing as soon as the engine reached normal operating temperature.
    ❌ Tried (didn't work) Replaced the VVT solenoid (OCV), Replaced the camshaft position sensor
    ✅ What actually fixed it A broken wire in the harness leading to the OCV was found and repaired. The user noted it looked like it had been pinched previously.

OEM Part Supersession History

  • 10921AA22010921AA230, then 10921AA231 — The part was updated with a redesigned internal oil seal to prevent the common failure of oil leaking through the electrical connector pins, which is the subject of TSB 02-170-17R.

Diagnostic Flowchart

Other Known Issues on This Vehicle

Issues unrelated to this code that are worth knowing about as an owner of this generation:

  • Excessive Oil Consumption 🟠 Medium — Common in early-to-mid 2010s FB25 engines. Less frequent but still reported in 2015-2019 models. Can start at any mileage. Subaru extended the warranty for this on earlier models but not officially for this entire generation. (Ref: TSB 02-157-14R (describes repair for earlier models, but relevant))
  • Lineartronic CVT Failure/Shudder 🔴 High — A significant number of owners report issues like shuddering, hesitation, or complete failure, often between 80,000 and 120,000 miles. The most common failure point is the torque converter lock-up solenoid or the valve body. (Ref: Subaru extended the CVT warranty to 10 years/100,000 miles for many earlier models due to widespread issues.)
  • Starlink Infotainment System Malfunctions 🟡 Low — Very common across the generation. Issues include the screen freezing, phantom touches, system reboots, and loss of audio or backup camera. This led to a class-action lawsuit. (Ref: Multiple software updates were released, but many owners report persistent problems.)
  • Parasitic Battery Drain 🟠 Medium — Owners report batteries dying unexpectedly after the car sits for a short period. This has been linked to the Controller Area Network (CAN) system not allowing modules to go to sleep properly.

Used vs. New Parts: Buying Guide for This Vehicle

When a used part is the smart pick: For this specific P0010 repair, buying a used Oil Control Valve is NOT recommended. The primary cause of failure is an internal seal defect that was corrected in later versions of the part. A used part is highly likely to have the same defect or will fail soon after installation.

What to inspect on the donor part:

  • If forced to use a donor part, only select one from a vehicle manufactured after mid-2017 and verify the date code on the solenoid itself is '17159' or higher.

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

  • Oil Control Valve (OCV) / VVT Solenoid: Due to the specific nature of the TSB-documented failure and the updated OEM part that resolves it, using an OEM or OEM-supplier (Denso) part is strongly recommended to ensure a permanent fix.

Aftermarket brands forum-validated for this vehicle:

  • Denso (often the original equipment manufacturer for Subaru)

Brands owners have reported issues with on this vehicle:

  • Unnamed, low-cost online brands should be avoided as their internal seals may not meet the revised OEM specifications, leading to a repeat failure.

Real Owner Stories

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

2015 Subaru Legacy 2.5L

Symptoms: Oil burning/consumption issues.

What fixed it: Monitoring oil levels and performing oil changes with 0W-20 synthetic oil to ensure proper AVCS hydraulic pressure.

Source hint: LegacyGT.com - 2015 Legacy 2.5 oil burning

2013-2019 Subaru Legacy (FB engine)

Symptoms: Oil leaking from the AVCS Oil Control Valve into the wiring harness, causing circuit codes.

What fixed it: Replaced the faulty OCV with updated OEM part #10921AA231 and cleaned the harness connector.

Source hint: Reddit r/subaru - TSB Thursday: 02-170-17R: Oil Leaking from AVCS Oil Control Valve (FA/FB engines)

Frequently Asked Questions

Does TSB 02-170-17R apply to my 2015-2019 Subaru Legacy 2.5L?
Yes, TSB 02-170-17R specifically covers 2013-2019 Legacy models. It addresses the issue where the Oil Control Valve (OCV) leaks oil into the electrical connector, causing circuit faults like P0010.
What is the specific replacement part number for the faulty Bank 1 OCV on my Legacy?
The updated OEM part number is #10921AA231. This redesigned valve features an improved internal seal to prevent oil from leaking through the electrical pins.
Can low oil levels cause a P0010 code on the FB25 engine?
Yes. The FB25 engine in the 2015-2019 Legacy is known for oil consumption (up to 1 quart per 1200 miles). Since the AVCS system is hydraulic, low oil levels or dirty oil can trigger this code.
How can I tell if my OCV failure has damaged the wiring harness?
According to TSB 02-170-17R, you should unplug the passenger-side intake OCV connector and check for oil. If oil has wicked into the harness, it can degrade the insulation or require the connector pigtail to be replaced.
Is there a simple way to confirm the OCV is bad before buying a new one?
You can perform a 'Swap Test' by moving the passenger-side intake OCV to the driver's side. If the code changes from P0010 to P0020, the valve is confirmed faulty.
What type of oil should I use to prevent AVCS issues in my 2.5L Legacy?
Subaru specifies 0W-20 full synthetic oil. Maintaining proper oil levels and cleanliness is critical for the hydraulic operation of the AVCS system.
07 Subaru - Replace Intake Valve Control Solenoid
07 Subaru - Replace Intake Valve Control Solenoid
Causes and Fixes P0010 Code: “A” Camshaft Position Actuator Circuit / Open (Bank 1)
Causes and Fixes P0010 Code: “A” Camshaft Position Actuator Circuit / Open (Bank 1)
How to Replace Variable Valve Timing Solenoid 2010-2014 Subaru Outback (2.5L H4)
How to Replace Variable Valve Timing Solenoid 2010-2014 Subaru Outback (2.5L H4)
Subaru AVCS Oil Control Valve Alternate Part Number
Subaru AVCS Oil Control Valve Alternate Part Number
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 May 30, 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 P0010 (Deep Dive) for:
  • Subaru Legacy: 20152016201720182019
In this article
🧭 Diagnostic Flowchart
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