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 2020-2022 Subaru Legacy: Crank/Cam Correlation Causes and Fixes

On a 2020-2022 Subaru Legacy, code P0017 is often caused by an Engine Control Module (ECM) software issue that requires a dealer reprogram, as noted in Subaru TSBs #09-120-24R and #09-97-22. Before pursuing costly repairs, check for low or dirty engine oil, as this is another primary cause. If oil and software are good, the passenger-side exhaust Oil Control Valve (OCV) is the next likely culprit and can be diagnosed by swapping it with an identical valve from another position. An ECM reprogram

15 minutes to read 2020-2022 Subaru LEGACY
Most Likely Cause
Engine Control Module (ECM) Software Glitch
Est. Time
4.2 hrs
Shop Labor
$150 – $2000
Parts Price
$40 – $800
⚠️ Drivable, but... — You can drive, but it's not recommended for long distances. Continued driving with incorrect timing can lead to reduced engine power, poor fuel economy, rough idle, and potentially stalling. Ignoring the code could mask a more serious developing issue like a sticking cam phaser or a stretching timing chain, which could eventually cause severe engine damage.
Key Takeaways
  • First, check your engine oil level and condition. This is the simplest and a very common fix.
  • This code is subject to a Technical Service Bulletin (TSB #09-120-24R) for an ECM reprogram. Contact a dealer to see if this applies before replacing any parts.
  • Do not immediately replace the camshaft position sensor; it is rarely the cause of a correlation code.
  • If oil and software are not the issue, the Bank 1 (passenger side) exhaust oil control valve (OCV) is the next most likely part to have failed.
The trouble code P0017 stands for "Crankshaft Position - Camshaft Position Correlation Bank 1 Sensor B". On your Subaru's boxer engine, Bank 1 is the passenger side. Sensor 'B' refers to the exhaust camshaft. This code means the Engine Control Module (ECM) has detected that the rotational position of the passenger-side exhaust camshaft is out of sync with the position of the crankshaft. This discrepancy indicates a potential problem with the engine's mechanical timing or the variable valve timing (VVT) system, which Subaru calls AVCS (Active Valve Control System).

What's Unique About the 2020-2022 Subaru LEGACY

For the 2020-2022 Legacy, the most significant factor for code P0017 is a known software issue. Subaru issued Technical Service Bulletins (TSBs) #09-120-24R and #09-97-22 stating that the ECM's diagnostic logic could be overly sensitive, triggering the code falsely. The TSBs confirm the fix is new reprogramming files containing "enhanced logic for the self-diagnosis program of the ECM." Unlike many other vehicles where a correlation code immediately points to mechanical or sensor failure, the first step for this specific Subaru is often a simple software update at a dealership, which can resolve the problem without any parts being replaced.

Diagnostic Flowchart

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

What is the current state of your engine oil and ECM?
→ Perform an engine oil and filter change ($40-$80), clear the code, and see if it returns.
→ Contact a Subaru dealership with your VIN to apply TSB #09-120-24R or #09-97-22 for a free software update.
Have you tested the Bank 1 Exhaust Oil Control Valve (OCV)?
→ Swap the Bank 1 exhaust OCV with the intake OCV. If the code changes to P0016, replace the OCV ($60-$180, part #10921AA231).
→ Have a professional inspect the timing chain, guides, and tensioners for stretch or damage ($400-$800).

Symptoms You May Notice

  • Check Engine Light is on
  • Rough or unstable idle
  • Reduced engine power and acceleration
  • Poor fuel economy
  • Engine stalling
  • Rattling noise from the engine.
⚠️ Don't Waste Money on the Wrong Fix
  • Replacing the camshaft position sensor. A correlation code like P0017 usually means the sensor is working, but the timing it's reading is wrong. The issue is more often hydraulic (oil), software-related (ECM), or mechanical (OCV, phaser) rather than the sensor itself.

Most Likely Causes

  1. Engine Control Module (ECM) Software Glitch 🔴 High Probability → Shop Engine Control Module (ECM) Subaru has issued TSBs #09-120-24R and #09-97-22 specifically to address this code with a software update, indicating the original logic was too sensitive and could falsely trigger P0016, P0017, P0018, and P0019.
    How to confirm: A Subaru dealership can check your VIN to see if your vehicle's ECM has the latest software version 🎬 Watch: See a pre-reflash baseline test of the VVT system. installed and if it is covered under the TSBs.
    Typical fix: Reprogramming the ECM with the updated software file provided by Subaru. This is a dealer-only procedure.
    Est. part cost: $0
  2. Low or Dirty Engine Oil 🔴 High Probability The variable valve timing (AVCS in Subaru terms) system uses oil pressure to adjust cam timing. Insufficient or contaminated oil can prevent the cam phasers from operating correctly or clog the small filter screens in the oil lines, leading to a correlation error.
    How to confirm: Check the engine oil level on the dipstick and inspect its condition. If it's low or appears dark, gritty, or sludgy, it needs to be changed. This should always be the first step.
    Typical fix: Perform an engine oil and filter change using the manufacturer-specified grade of oil.
    Est. part cost: $40-$80
  3. Faulty Oil Control Valve (OCV) / VVT Solenoid 🟡 Medium Probability → Shop Engine Variable Valve Timing (VVT) Solenoid The OCV for the Bank 1 exhaust camshaft can get stuck or fail electronically. Debris from infrequent oil changes can also clog its internal filter screens, impeding oil flow. Forum users report this is a very common failure point and a straightforward DIY replacement.
    How to confirm: The OCV can be tested for resistance with a multimeter or by applying 12V power to see if it actuates. A highly effective diagnostic method is to swap the suspect OCV. On many FA/FB engines, the four OCVs are identical. You can swap the Bank 1 exhaust OCV with the Bank 1 intake OCV. If the code changes to P0016 (Bank 1 Intake), the OCV is confirmed to be faulty.
    Typical fix: Replace the Bank 1 exhaust Oil Control Valve. It is typically held in by one or two 10mm bolts and is accessible from the front of the engine. 🎬 See this walkthrough on how to replace a Subaru VVT solenoid.
    Est. part cost: $80-$150
  4. Stretched Timing Chain or Failed Tensioner ⚪ Low Probability → Shop Engine Timing Chain While less common on newer vehicles, significant mileage or poor maintenance can lead to timing chain stretch, causing a permanent timing correlation issue that the VVT system cannot compensate for.
    How to confirm: This is a complex diagnosis that involves removing the engine's front cover to physically inspect the chain, guides, and tensioner for slack or damage. This is typically done after all other possibilities (software, oil, OCVs) are exhausted.
    Typical fix: Replace the timing chain, tensioners, and guides. This is a labor-intensive job.
    Est. part cost: $400-$800

Rare But Worth Checking

  • Faulty Camshaft Position Sensor: → Shop Engine Camshaft Position Sensor It's rare for the sensor itself to fail and cause a correlation code, as the code implies the signal is present but timed incorrectly. However, it's not impossible for the sensor to send erratic data. Misdiagnosis by replacing this sensor is common.
  • Damaged Camshaft Phaser/Sprocket: → Shop Engine Camshaft The actuator on the end of the camshaft that actually adjusts the timing can fail mechanically or become slow to respond. This is an expensive repair. One owner on a Subaru forum reported that after replacing OCVs did not fix their P0017, the ultimate culprit was a faulty cam sprocket that required engine removal to replace.

Diagnosis Steps

  1. Check Engine Oil: Verify the engine oil is at the correct level and is clean. If low or dirty, perform an oil and filter change, clear the code, and see if it returns. This is the first and most important step.
  2. Check for TSBs: Contact a Subaru dealership with your VIN to see if TSB #09-120-24R or #09-97-22 applies to your vehicle and if the ECM reprogram has been performed. This should be a primary step for this specific vehicle.
  3. Scan for Other Codes: Use an OBD-II scanner to check for any other pending or active codes that could provide more context.
  4. Inspect Sensor Wiring: Visually inspect the wiring and connector for the Bank 1 exhaust camshaft position sensor and the oil control valve for any signs of damage, corrosion, or loose connections.
  5. Test the Oil Control Valve (OCV): If software and oil are ruled out, test the Bank 1 exhaust OCV. 🎬 Watch: How to test and fix the Bank 1 exhaust sensor. Since the OCVs are often identical, swap the Bank 1 exhaust OCV with the Bank 1 intake OCV. Clear codes and drive. If the code changes to P0016, you have confirmed the OCV is the faulty part.
  6. Test the Camshaft Position Sensor: While less likely, the sensor can be tested for proper signal output using an oscilloscope. Swapping it with the intake sensor on the same bank can also be a diagnostic step if they are identical.
  7. Inspect Mechanical Timing: If all else fails, a mechanical inspection of the timing chain, guides, tensioners, and cam sprockets is necessary. This is an advanced step best left to a professional.

Parts You'll Likely Need

  • Engine Oil and Filter — Low or dirty oil is a primary cause of VVT system faults that trigger P0017.
    Trusted brands: Subaru Idemitsu (OEM), Mobil 1, Pennzoil
    OEM price range: $50-$90
    Aftermarket price range: $40-$70
  • Oil Control Valve (VVT Solenoid) (OEM #10921AA231 (Verify with VIN)) — This solenoid controls oil flow to the cam phaser and is a common failure point. It can stick or fail electronically. On FA/FB engines, all four OCVs are often the same part number, making diagnosis easier.
    Trusted brands: Subaru (OEM), Denso, Dorman
    OEM price range: $120-$180
    Aftermarket price range: $60-$120

Related Codes That Often Appear With This One

  • P0016 — This is the correlation code for the intake camshaft on the same bank (Bank 1). If both appear together, it points towards a larger issue on that bank, a problem with the timing chain, or the ECM software fault which addresses both codes.
  • P0018 / P0019 — These are the equivalent codes for Bank 2 (driver's side). Seeing codes for both banks (e.g., P0017 and P0019) strongly suggests a systemic problem like low/dirty oil, a stretched timing chain, or the ECM software issue which is known to cause all four codes.

Technical Service Bulletins (TSBs) & Recalls

  • 09-120-24R: Announces new ECM reprogramming files to remedy DTCs P0016, P0017, P0018, P0019, and P0087 for 2020-22 Legacy/Outback and other models.
  • 09-120-24: Original bulletin announcing the availability of ECM reprogramming files for P0017 and other codes.
  • 09-97-22: Announces new ECM reprogramming files for 2020-22 Legacy/Outback to remedy DTCs including P0017.

Platform-Specific Known Issues

  • The Engine Control Module (ECM) may have overly sensitive diagnostic parameters, causing it to set a P0017 code when no mechanical fault exists. Subaru addressed this in Technical Service Bulletins #09-120-24R and #09-97-22, which call for an ECM software update to enhance the diagnostic logic.

Mechanic-Grade Diagnostic Values

  • Oil Control Valve (OCV) Solenoid Resistance — expected: 6.9 - 7.9 Ω at 68°F (20°C). Failure: A reading outside this range, or an open/infinite reading, indicates a faulty solenoid coil.
  • Camshaft Position Sensor Resistance (FB/FA Engines) — expected: 1.0 - 4.0 kΩ (kilo-ohms). Failure: A reading outside this range suggests the sensor's internal coil is faulty.
  • AVCS Advance Angle at Idle (Live Data) — expected: 0° within 10 seconds of startup (with OCV unplugged). Failure: A value greater than ±10° from the 0° reference indicates a potential base timing issue (e.g., stretched chain or jumped tooth).
  • Cam/Crank Deviation Angle (Live Data) — expected: Less than 10 degrees at idle.. Failure: A consistent deviation approaching or exceeding 10-14 degrees suggests a mechanical timing issue like a stretched chain or a slow/faulty AVCS actuator (cam phaser).

Hidden / Shadow Codes Worth Checking

  • Mode $06, MID $35, TID $8D or $8E: This refers to Mode $06 data, which is a non-continuous monitor for the AVCS system. It tracks diagnostic values that may not be severe enough to set a Check Engine Light but indicate a developing problem. (see via An advanced OBD-II scan tool capable of displaying Mode $06 data. A value greater than 1000 for these Test IDs indicates a failure in the AVCS self-diagnostic test for Bank 1.)

Scan Tool Commands That Help

  • Subaru Select Monitor (SSM) or equivalent high-end scanner: AVCS Active Test / VVT Solenoid Test — This bidirectional command allows a technician to manually command the AVCS phaser to advance and retard. It is used to confirm if the OCV is working and if the phaser is physically stuck or responding slowly due to oil flow issues or internal failure.
  • Subaru Select Monitor (SSM) or equivalent: Clear Memory / Reset ECU — After a mechanical repair (like replacing an OCV or timing components), a full memory clear is recommended. Some technicians report this is more effective than a standard code clear for forcing the ECM to relearn AVCS parameters.

Wiring & Ground Locations

  • ECU Main Ground — On many modern Subarus, the ECU's main ground point is bolted to the intake manifold. On N/A engines, this is often to the left of the throttle body (when viewed from the front).. A poor ground connection can cause erratic sensor readings and incorrect operation of solenoids like the OCV, potentially triggering false correlation codes. While not a primary cause, it's a critical check if electrical issues are suspected.
  • OCV Connector — The connector plugs directly into the top of the Oil Control Valve, located on the front timing cover of the engine for each camshaft.. It is a known issue for oil to leak past the OCV's internal seal and into the electrical connector and wiring harness. This oil contamination can cause high resistance and intermittent connection, preventing the OCV from actuating correctly and triggering P0017.

Real Owner Repair Stories

  • Reddit user on r/SubaruForester (2014 Subaru Forester (similar FB engine), 78k miles) — P0017, stumbles during cold start then clears up.
    ❌ Tried (didn't work) Replacing the Oil Control Valve (OCV) solenoid; the CEL returned within a mile.
    ✅ What actually fixed it The final diagnosis was a malfunctioning exhaust cam sprocket (phaser) that was slow to respond. The repair required pulling the engine to access, inspect, and replace the sprocket, and to clean the oil galleys in the cam carriers as a precaution.
  • Reddit user on r/subaruimpreza (2019 Subaru Impreza (similar FB engine), 75,000 miles) — P0017, car runs normally.
    ❌ Tried (didn't work) Two oil changes (one with an engine flush)., Swapping all four OCVs to different positions., Swapping exhaust cam position sensors between banks., A dealership visit that only recommended another oil change.
    ✅ What actually fixed it The user's issue was not definitively resolved in the thread, but expert advice pointed strongly toward either clogged AVCS oil passages (due to a long oil change interval) or a sticking AVCS cam sprocket, which would require more advanced diagnostics than parts swapping. The failure of parts-swapping to resolve the code was the key takeaway.

When the Usual Fixes Don't Work

  • While the TSB for an ECM reprogram is a very common fix, there are documented cases where it is not the solution. In one instance involving a similar engine, a dealership replaced the OCV solenoid based on the P0017 code, but the light returned almost immediately. Further diagnosis revealed the actual cause was a mechanically failing (slow to respond) AVCS cam sprocket, a much more involved and expensive repair that required engine removal. This highlights that while software and simple solenoid failure are common, they are not the only possibilities.

OEM Part Supersession History

  • 10921AA220, 10921AA23010921AA231 — Standard part evolution for improved reliability or manufacturing process.
    Heads up: The parts are generally interchangeable, but it is always recommended to use the latest revision (10921AA231) when replacing.
2018 Subaru Crosstrek FB20D - VVT ADV Tracks, RET Stuck at 2° | P0017 Pre-Reflash Baseline
2018 Subaru Crosstrek FB20D - VVT ADV Tracks, RET Stuck at 2° | P0017 Pre-Reflash Baseline
How to replace a VVT solenoid Subaru #p0028 #p0026
How to replace a VVT solenoid Subaru #p0028 #p0026
How to P0017 FIXED! EASY DIY Solution
How to P0017 FIXED! EASY DIY Solution
How to Test & Fix P0017 Crankshaft - Camshaft Position Correlation Bank 1 Sensor B (Bank 1- Exhaust)
How to Test & Fix P0017 Crankshaft - Camshaft Position Correlation Bank 1 Sensor B (Bank 1- Exhaust)
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 Apr 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 P0017 for:
  • Subaru LEGACY: 202020212022
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