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

P0017 on 2012-2019 Subaru Impreza: Crankshaft Camshaft Correlation Causes and Fixes

On a 2012-2019 Subaru Impreza with the FB20 engine, P0017 is most often caused by low or dirty engine oil, or a failing exhaust oil control valve (OCV) on Bank 1 (passenger side). Always check your oil level and condition first. Replacing a faulty OCV is a common DIY fix, with the part (OEM #10921AA231) costing around $120-$180. In some cases, the issue may be overly sensitive ECM software, which requires a dealer update per TSB #11-127-13R.

17 minutes to read 2012-2019 Subaru IMPREZA
Most Likely Cause
Low or Dirty Engine Oil
Est. Time
5.2 hrs
Shop Labor
$150 – $2700
Parts Price
$40 – $700
⚠️ Drivable, but... — You can drive, but it's not recommended for long distances or aggressively. Continued driving with incorrect timing can lead to poor fuel economy, rough idle, stalling, and potential long-term engine damage, especially if a stretched timing chain is the underlying cause.
Key Takeaways
  • Always check your engine oil level and condition first. Low or dirty oil is the #1 cause of P0017 on this car.
  • The next most likely culprit is a faulty Oil Control Valve (OCV) for the passenger-side exhaust cam, which is a simple and affordable DIY replacement.
  • Don't immediately replace the cam or crank sensors. They are less likely to be the cause than oil issues or the OCV.
  • Ask a dealership to check if your ECM software is up to date, as Subaru has issued multiple updates to fix false P0017 triggers. [Bulletin #09-120-24R]
  • If basic fixes don't work, the issue could be a more serious mechanical problem like a stretched timing chain, which requires professional diagnosis.
The trouble code P0017 stands for "Crankshaft Position - Camshaft Position Correlation Bank 1 Sensor B". On a Subaru boxer engine, Bank 1 is the passenger side. Sensor 'B' refers to the exhaust camshaft. This means the Engine Control Module (ECM) has detected that the rotational position of the exhaust camshaft on the passenger side is out of sync with the position of the crankshaft, indicating a mechanical timing problem.

What's Unique About the 2012-2019 Subaru IMPREZA

The engine bay of a 2012-2019 Subaru Impreza featuring the 2.0L FB20 engine.
The 2.0L FB20 engine in the 2012-2019 Impreza is highly dependent on clean oil for its AVCS (Active Valve Control System) to function properly.

The FB20 engine in this generation of Impreza is known for having specific issues that can trigger P0017. The most 🎬 Watch: A quick breakdown of P0017 causes and repairs. critical are the potential for excessive oil consumption leading to low oil levels, which directly impacts the oil-pressure-driven AVCS (Active Valve Control System). Sludge from delayed oil changes can clog the OCV solenoids or the tiny filters in the oil passages beneath them. Furthermore, Subaru has issued multiple Technical Service Bulletins (TSBs) providing ECM software updates to correct overly sensitive diagnostic logic for this exact code, indicating that the problem can sometimes be the software, not a physical part.

Diagnostic Flowchart

A mechanic removing and swapping an Oil Control Valve (OCV) from the engine cylinder head.
Swapping the Bank 1 exhaust and intake OCVs is a quick way to determine if the solenoid itself has failed or if the issue lies deeper in the engine.

Tap your situation to follow the diagnostic path that matches what you're seeing on this vehicle.

Which of these best describes your current diagnostic progress with this code?
Is your engine oil level low, or is the oil dark and sludgy?
→ Perform a complete oil and filter change using the correct weight ($40-$80), clear the code, and retest.
→ Swap the Bank 1 exhaust and intake OCVs. If the code changes to P0016, replace the OCV (OEM 10921AA231, 🎬 See this walkthrough on replacing the FB20 oil control valve. $120-$180).
Did the code change to P0016 after swapping the Oil Control Valves?
→ Replace the faulty Oil Control Valve (OEM 10921AA231, $120-$180) and clean the small filter screen (W0133-2748681).
→ Visit a dealer for an ECM software update ($100-$250) per Subaru TSB #11-127-13R or #09-120-24R.
→ Monitor VVT Advance Angle live data. If it deviates by more than 8-10 degrees, replace the stretched timing chain ($400-$700 🎬 Learn more about the costs of timing chain replacement. parts, >$1500 labor).

Generation note: This range covers the fourth generation (2012-2016) and the fifth generation (2017-2019) Impreza. Both generations use a version of the 2.0L FB20 engine, and the causes, symptoms, and fixes for P0017 are largely the same across both. The issue is also common on the Subaru Crosstrek, which shares the same engine.

Symptoms You May Notice

A Subaru Impreza instrument cluster showing the Check Engine, Traction Control, and Hill Assist warning lights illuminated.
When P0017 triggers on a Subaru, it typically disables the cruise control and illuminates the Traction Control and Hill Assist lights alongside the Check Engine Light.
  • Check Engine Light is on
  • Illumination of Traction Control and Hill Assist lights
  • Rough or unstable idle, sometimes dropping low at stops
  • Engine stalling, especially at low speeds
  • Poor acceleration and loss of power
  • Reduced fuel economy
  • Rattling noise from the engine on startup, potentially indicating a timing chain issue
⚠️ Don't Waste Money on the Wrong Fix
  • Replacing the camshaft or crankshaft position sensors immediately. Forum users and mechanics repeatedly state that sensor failure is rare for this code on this platform. The diagnostic step of swapping sensors is to confirm they are *not* the problem. If the code does not move to a different location after a sensor swap, the sensor is good.

Most Likely Causes

Comparison showing a clean, new Oil Control Valve next to a failed, sludge-covered Oil Control Valve.
Clean oil is vital for the AVCS system. Sludge buildup from delayed oil changes can easily clog the fine mesh screens on the Oil Control Valves, restricting oil flow and causing timing codes like P0017.
  1. Low or Dirty Engine Oil 🔴 High Probability The FB20 engine can be prone to oil consumption, and the AVCS (VVT) system is entirely dependent on oil pressure and cleanliness. Sludge from infrequent oil changes can clog the small passages and filter screens for the oil control valves, leading to slow or incorrect cam phasing.
    How to confirm: Check the oil level on the dipstick and examine its color and consistency. If the level is low or the oil is dark and sludgy, this is your likely starting point. Many owners report this code appearing after going too long on an oil change.
    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 oil weight.
    Est. part cost: $40-$80
  2. Faulty Oil Control Valve (OCV) / AVCS Solenoid 🔴 High Probability → Shop Engine Variable Valve Timing (VVT) Solenoid These solenoids are a very common failure point. They can become clogged with debris from dirty oil or fail electrically, preventing them from correctly directing oil flow to the cam phaser.
    How to confirm: Swap the Bank 1 (passenger side) exhaust OCV with the intake OCV on the same bank. Clear the codes and drive. If the code changes to P0016 (intake), the OCV is bad. You can also test its resistance with a multimeter (should be around 7 Ohms) or by applying 9-12V to see if the internal plunger actuates.
    Typical fix: Replace the faulty Oil Control Valve. It is located on the front of the engine and held by a single 10mm bolt, making it a very accessible DIY job.
    Est. part cost: $80-$180
  3. Outdated ECM Software 🟡 Medium Probability Subaru has released multiple TSBs (e.g., #11-127-13R) to update the ECM software because the original logic was too sensitive and could falsely trigger P0017 and related codes, especially on 2013 models.
    How to confirm: A Subaru dealership or a well-equipped independent shop can check your vehicle's current software Calibration Identification (CID) number against the latest available updates listed in the TSBs.
    Typical fix: Reprogram the Engine Control Module (ECM) with the updated software file using a Subaru Select Monitor (SSM) tool. This is typically a dealer-only procedure.
    Est. part cost: $100-$250
  4. Stretched Timing Chain Low-to-medium Probability → Shop Engine Timing Chain While less common than OCV or oil issues on the FB engine, premature timing chain stretch can occur, creating slack and throwing off the mechanical timing between the crank and cams.
    How to confirm: This is an advanced diagnosis. A technician can use a scan tool to observe live data for cam/crank deviation. A value consistently off by more than 8-10 degrees at idle points to a timing chain issue. Visual inspection requires removing the front timing cover.
    Typical fix: Replace the timing chain, tensioners, and guides. This is a labor-intensive job with labor costs often exceeding $1,500.
    Est. part cost: $400-$700

Rare But Worth Checking

  • Clogged OCV Filter Screen: There is a small, thimble-like filter screen for the OCV oil supply line located in the cylinder head, directly underneath where the OCV seats. This can get clogged with sludge and starve the OCV of oil, causing the same symptoms as a bad valve. It's highly recommended to check and clean this screen when replacing the OCV.
  • Failing AVCS Cam Sprocket (Phaser): The mechanical gear on the end of the camshaft can stick internally or fail, often due to sludge or wear. Even with a good OCV, a sticking phaser won't adjust timing correctly. This is a more expensive repair, often diagnosed after all other possibilities are exhausted.
  • Incorrect Camshaft Position Sensor Clearance: → Shop Engine Camshaft Position Sensor Subaru TSB #11-130-13R addresses issues where the air gap between the camshaft position sensor and the reluctor wheel on the cam is out of spec, which can cause various cam-related codes, including P0017. The fix involves checking and adjusting the clearance.

Diagnosis Steps

  1. Check the engine oil level and condition. Top up or change the oil and filter if necessary. This is the most common cause. Clear the code and see if it returns.
  2. Scan for other DTCs. Codes for specific OCV circuits or other banks can provide clues.
  3. Inspect the wiring and connector for the Bank 1 exhaust OCV (passenger side, lower solenoid) for damage or oil contamination.
  4. Swap the Bank 1 exhaust OCV with the Bank 1 intake OCV (upper solenoid on the same side). Clear codes and drive. If the code changes to P0016, the OCV you moved is faulty and needs replacement. This is a highly effective diagnostic step cited by many owners.
  5. If the code does not change, remove the OCV again and inspect the small filter screen in the oil passage beneath it. Use a pick to gently pull it out. Clean or replace it if clogged. The OEM part number for the filter is W0133-2748681.
  6. If the problem persists, check your VIN against Subaru TSBs #11-127-13R and #11-128-13. Your ECM may require a software update for being overly sensitive.
  7. Use an advanced scan tool to monitor live data for 'VVT Advance Angle' for the Bank 1 exhaust cam. If it deviates more than 8-10 degrees from the commanded position, or is slow to respond compared to the other cams, this suggests a mechanical issue like a stretched timing chain or sticking cam phaser.
  8. As a final step, a physical inspection of the timing chain, guides, and tensioner may be necessary, which requires removing the timing cover.

Parts You'll Likely Need

  • Oil Control Valve / VVT Solenoid (Bank 1 Exhaust) (OEM #10921AA231 (replaces 10921AA230, 10921AA220)) — This is the most common mechanical failure point, either by getting clogged or failing electrically. It's a primary component in controlling cam timing.
    Trusted brands: Subaru (OEM), Denso, Dorman
    OEM price range: $120-$180
    Aftermarket price range: $60-$120
  • Timing Chain Kit — If the timing chain has stretched, it must be replaced along with its guides and tensioners to restore correct mechanical timing.
    Trusted brands: Subaru (OEM), Cloyes, Gates
    OEM price range: $500-$700
    Aftermarket price range: $300-$500
  • OCV Oil Filter Screen (OEM #W0133-2748681) — Often overlooked, this small filter can become clogged with sludge, starving the OCV of oil pressure and mimicking a failed OCV. It is cheap and easy to replace.

Related Codes That Often Appear With This One

  • P0016 — This is the correlation code for the intake camshaft on the same bank (Bank 1). They can appear together if there is a major timing issue on that side of the engine or a widespread oil delivery problem.
  • P0018 / P0019 — These are the correlation codes for Bank 2 (driver's side). Seeing them with P0017 could indicate a more widespread problem like a stretched timing chain, severe oil sludge affecting the entire engine, or an ECM software issue as noted in TSBs.
  • P03xx (Misfire Codes) — Incorrect cam timing can lead to inefficient combustion, which can cause the engine to misfire on one or more cylinders, triggering codes like P0301, P0302, etc. TSB #11-130-13R links cam sensor issues to misfire codes.
  • P000B — This code for 'B' Camshaft Position Slow Response often appears with P0017. It specifically points to a delayed response from the AVCS system, strengthening the diagnosis of a failing OCV solenoid or a sludged-up cam phaser.

Technical Service Bulletins (TSBs) & Recalls

  • TSB #11-127-13R: Announces updated ECM reprogramming files specifically to address DTCs P0017 and P0019 on 2013 Impreza and XV Crosstrek models, suggesting the original logic was too sensitive.
  • TSB #11-128-13: Announces ECM reprogramming availability to address DTCs P0017 and P0019 for 2012 Impreza models.
  • TSB #09-120-24R: Announces new ECM reprogramming files to remedy DTCs P0016, P0017, P0018, and P0019 for 2017 models.
  • TSB #11-130-13R: Provides inspection procedures for various cam position and misfire codes (including P0017 indirectly) caused by incorrect camshaft position sensor air gap on 2012-13 Imprezas.

Platform-Specific Known Issues

  • Subaru issued TSB #09-120-24R, which provides new ECM reprogramming files to remedy DTCs including P0017.
  • Subaru issued TSB #11-127-13R, which announced a specific diagnostic procedure and updated ECM files to address P0017.
  • Subaru issued TSB #11-128-13, which also announced the availability of ECM reprogramming to address P0017.

Mechanic-Grade Diagnostic Values

  • VVT Advance Angle Deviation (Live Data) — expected: Less than 8-10 degrees from commanded position at idle.. Failure: A consistent deviation approaching or exceeding 10-14 degrees points towards a mechanical timing issue like a stretched chain or failing cam phaser.
  • VVT Initial Learned Values (Live Data) — expected: Values for Left and Right banks should be relatively close.. Failure: A large discrepancy between banks (e.g., 30 degrees apart, such as 121 vs 90) indicates a significant timing problem on one side.
  • Oil Control Valve (OCV) Resistance — expected: Approximately 7-8 Ohms.. Failure: A reading significantly higher or lower (open or shorted) indicates a failed solenoid coil.

Hidden / Shadow Codes Worth Checking

  • P000B: 'B' Camshaft Position Slow Response (Bank 1). This code often appears with P0017 and indicates the camshaft is not reaching its target angle quickly enough, pointing more directly to a slow-acting OCV solenoid or a mechanically sticking cam phaser. (see via Standard OBD-II scanner, but often appears alongside P0017, providing a more specific clue.)

Scan Tool Commands That Help

  • Subaru Select Monitor (SSM) or equivalent advanced scanner: VVT Solenoid Actuation Test / Active Test — Use this bidirectional command to manually activate the Bank 1 exhaust OCV. You should hear a click from the solenoid and a noticeable change in engine idle quality. If there is no click or no change in idle, the solenoid is either stuck or has failed electrically.
  • Subaru Select Monitor (SSM) or equivalent advanced scanner: Monitor Live Data: 'Exh. VVT Retard Ang. R' and 'Ex VVT Retard Target Angle R' — While driving or at idle, compare the actual angle ('Ang. R') to the target angle ('Target Angle R'). The actual value should closely follow the target. A lagging or non-responsive actual value confirms a fault in the control system or mechanical components.

Wiring & Ground Locations

  • Gv (Engine Compartment Ground) — Located in the right front of the engine compartment.. A poor engine ground can cause erratic sensor readings and incorrect operation of solenoids, potentially leading to false correlation codes.
  • Gb-1 / Gb-2 (Front Grounds) — Located near the right and left headlights, respectively.. These are primary chassis ground points for the front wiring harness, which includes the engine sensors and actuators. Corrosion or looseness here can affect the entire engine management system.
  • OCV Connector — Front of the engine, on the passenger side (Bank 1). The exhaust OCV is the lower of the two solenoids.. This connector is prone to oil contamination from a leaking OCV o-ring. Oil in the connector can cause high resistance and intermittent connection, mimicking a failed solenoid.

Real Owner Repair Stories

  • Reddit user on r/MechanicAdvice (2017 Subaru WRX) — P0017 appeared after fixing a short on a cam sensor wire (P0390).
    ❌ Tried (didn't work) Dealer confirmed with a scope that mechanical timing was correct. Dealer recommended replacing all 4 cam sprockets and the ECU for $3,100.
    ✅ What actually fixed it The owner's mechanic friend performed a deep 'memory clear' of the ECU, which was more than a standard code clear. After the reset, the car ran fine and the code did not return, suggesting a latched fault in the ECU's memory.
  • Reddit user on r/subaru (2018 Subaru Crosstrek) — P000B and P0017 codes, intermittent Check Engine Light.
    ❌ Tried (didn't work) Owner changed oil and replaced the battery.
    ✅ What actually fixed it This is a dealer diagnosis story. The dealer found the VVT 'Initial Learned Values' were 30 degrees apart between banks. They unplugged the exhaust OCV and observed the retard value was off. The final dealer recommendation was to replace the right-hand VVT solenoid, the right-hand exhaust cam sprocket, and the ECM, indicating a multi-part failure.
  • Reddit user on r/MechanicAdvice (Unknown year, likely FB engine) — Car ran badly after oil level went very low. P0017 code present.
    ❌ Tried (didn't work) Cleaned and tested OCV solenoids.
    ✅ What actually fixed it The low oil condition caused the timing to jump by two teeth and broke the dowel pin on the exhaust camshaft. The fix required a full timing job: new timing chain, tensioners, both CVVT sprockets, and a new exhaust camshaft. The P0017 code remained even after the mechanical repair, indicating the need for a drive cycle or specific ECU reset procedure to clear the permanent fault.

OEM Part Supersession History

  • 10921AA220, 10921AA23010921AA231 — Standard part revision and improvement by the manufacturer.
    Heads up: The new part number, 10921AA231, is the correct and current replacement. However, it may not come with the necessary O-rings (Subaru PNs 806944060 and 16677AA040), which should be ordered separately to ensure a proper seal.

Model Year Variations Within This Range

  • 2017-2019: The Impreza received the FB20D engine, which added direct injection. While most P0017 causes remain the same, this introduces the possibility of carbon buildup on intake valves, which can affect engine breathing and potentially contribute to performance issues that might be misdiagnosed.
  • 2012-2016: These models use the port-injected FB20B engine. They are not susceptible to intake valve carbon buildup in the same way as the later direct-injected models.
  • 2013: The 2013 model year is specifically called out in TSB #11-127-13R for having overly sensitive ECM logic that could falsely trigger P0017. While other years may be affected, this year is a prime candidate for a software-based issue.
Causes and Fixes P0017 Code: Camshaft Position B – Camshaft Position Correlation (Bank 1)
Causes and Fixes P0017 Code: Camshaft Position B – Camshaft Position Correlation (Bank 1)
How To Fix P0017? | Crankshaft Position - Camshaft Position Correlation (Bank 1 Sensor B)
How To Fix P0017? | Crankshaft Position - Camshaft Position Correlation (Bank 1 Sensor B)
AVCS solenoid not activating? Here is how to diagnose and fix it!
AVCS solenoid not activating? Here is how to diagnose and fix it!
How Much Does It Cost to Replace a Timing Chain?
How Much Does It Cost to Replace a Timing Chain?
Replace/upgrade FA20 FB20 oil control valve vvt
Replace/upgrade FA20 FB20 oil control valve vvt
P0017 Code Explained – Easy Diagnosis & Repair ||
P0017 Code Explained – Easy Diagnosis & Repair ||
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 25, 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 P0017 for:
  • Subaru IMPREZA: 20122013201420152016201720182019
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