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
- 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.
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.
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.
- 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
- 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 - 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 - 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 - 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
- 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.
- 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.
- Scan for Other Codes: Use an OBD-II scanner to check for any other pending or active codes that could provide more context.
- 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.
- 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.
- 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.
- 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, 10921AA230→10921AA231— 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.
Helpful Videos
We Have This Part in Stock
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.
- Subaru LEGACY:
- 🧭 Diagnostic Flowchart
- 🎬 Helpful Videos
- 🛍️ Shop This Part
- What's Unique About the 2020-2022 Subaru LEGACY
- Symptoms You May Notice
- Most Likely Causes
- Rare But Worth Checking
- Diagnosis Steps
- Parts You'll Likely Need
- Related Codes That Often Appear With This One
- Technical Service Bulletins (TSBs) & Recalls
- Platform-Specific Known Issues
- Mechanic-Grade Diagnostic Values
- Hidden / Shadow Codes Worth Checking
- Scan Tool Commands That Help
- Wiring & Ground Locations
- Real Owner Repair Stories
- When the Usual Fixes Don't Work
- OEM Part Supersession History
- 🎟️ Get 5% Off