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

P0016 on 2020-2022 Subaru Outback: Crank/Cam Correlation Causes and Fixes

For a 2020-2022 Subaru Outback, code P0016 is frequently caused by an Engine Control Module (ECM) software issue. A dealer reprogram, covered by TSB 09-120-24R, is the first recommended step. This TSB also addresses related codes P0017, P0018, and P0019. If the code persists, the next most likely causes are low/dirty engine oil or a faulty oil control valve (OCV). In some cases, the ECM may need its 'learned values' reset with a specialized scan tool after a repair.

16 minutes to read 2020-2022 Subaru OUTBACK
Most Likely Cause
Outdated Engine Control Module (ECM) Software
Est. Time
4.5 hrs
DIY Doable?
🔧 Shop
Shop Labor
$200 – $1800
Parts Price
$40 – $500
⚠️ Drivable, but... — You can drive, but it should be minimized and without aggressive acceleration. Continuing to drive with a potential timing issue can lead to reduced engine performance, stalling, poor fuel economy, and in a worst-case scenario, severe internal engine damage if the timing chain has actually jumped a tooth.
Key Takeaways
  • First, check with a Subaru dealer if your Outback needs an ECM software update as per TSB 09-120-24R. This is a known issue and may fix the code without any mechanical repairs.
  • Always check your engine oil level and condition. Low or dirty oil is a very common cause for this code on Subarus.
  • If a software update and oil change don't solve the problem, the next most likely culprit is a failing Oil Control Valve (OCV) on the passenger side of the engine.
  • Do not immediately replace the camshaft or crankshaft sensors; they are less likely to be the cause than software, oil, or the OCV.
  • Ignoring this code can lead to poor performance and potential engine damage, so it should be addressed promptly.
P0016 stands for 'Crankshaft Position - Camshaft Position Correlation Bank 1 Sensor A'. It means the Engine Control Module (ECM) has detected that the rotation of the crankshaft and the intake camshaft on Bank 1 are not synchronized. On a Subaru boxer engine, Bank 1 is the passenger side of the engine. This synchronization is critical for engine timing, performance, and emissions.

What's Unique About the 2020-2022 Subaru OUTBACK

What's unique to this Subaru Outback generation (and its platform mates) is a known software sensitivity that can incorrectly trigger the P0016 code. Subaru issued Technical Service Bulletin (TSB) #09-120-24R, which provides new reprogramming files for the ECM to fix this problem by enhancing the self-diagnosis logic. This makes checking for an available ECM update a critical first step. Additionally, these ECMs can stubbornly retain 'learned' incorrect timing values even after a mechanical fix, sometimes requiring a special scan tool procedure to clear the memory, a step beyond a simple code clear.

Diagnostic Flowchart

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

Has a dealer updated your ECM software per TSB #09-120-24R?
Is your engine oil low, dark, or the wrong viscosity?
→ Perform an oil change with 0W-20 synthetic ($40-$80). Subaru's AVCS is highly sensitive to oil condition.
→ Visit a Subaru dealer to apply TSB #09-120-24R. This software update fixes a known P0016 glitch and is often free.
Have you tested the Bank 1 Oil Control Valve (OCV)?
→ Swap the Bank 1 intake OCV with Bank 2. If the code changes to P0018, replace the OCV (OEM Part 10921AA231, $120-$180).
→ Inspect cam/crank sensor wiring. If intact, have a shop check 'VVT Adv. Ang. Amount' for a stretched timing chain ($200-$500 parts).
→ Use a specialized scan tool's 'test mode' to clear the ECM's learned values. A standard OBD-II code clear will not work.
Professional service recommended: Diagnosing timing issues, testing components with a scan tool, and reprogramming the ECM require specialized tools and expertise. An incorrect diagnosis can lead to expensive and unnecessary repairs, such as replacing a timing chain when only an ECM update or OCV was needed. Furthermore, clearing persistent codes caused by learned ECM values requires specific, sometimes undocumented, procedures.

Symptoms You May Notice

  • Check Engine Light is on
  • Reduced engine power and sluggish acceleration
  • Rough or unstable idle
  • Engine may stall
  • Rattling noise from the front of the engine, especially on cold startup
  • Engine cranks but does not start (in severe cases)
⚠️ Don't Waste Money on the Wrong Fix
  • Replacing the camshaft or crankshaft position sensors without first checking for ECM updates, verifying oil condition, or testing the Oil Control Valve.
  • Performing an expensive timing chain replacement before ruling out the simpler causes like the ECM software or OCVs.
  • Replacing the entire ECM when only a reprogram or a clearing of learned values is needed.

Most Likely Causes

  1. Outdated Engine Control Module (ECM) Software 🔴 High Probability Subaru has officially acknowledged this issue by releasing TSB #09-120-24R, which provides a software update specifically to remedy DTCs P0016, P0017, P0018, and P0019 by enhancing the ECM's self-diagnosis logic.
    How to confirm: A Subaru dealer or a qualified shop with a Subaru Select Monitor (SSM) or equivalent scan tool can check the current ECM software version against the TSB to see if an update is available.
    Typical fix: Reprogramming the ECM with the latest software files provided by Subaru. This is often covered under the vehicle's emissions warranty.
    Est. part cost: $0
  2. Low, Dirty, or Incorrect Viscosity Engine Oil 🔴 High Probability Subaru's variable valve timing (AVCS) system is hydraulically operated and highly sensitive to oil level, condition, and viscosity. Low or sludgy oil can't provide the necessary pressure to adjust cam timing correctly, and is one of the most common root causes of all VVT-related codes.
    How to confirm: Check the oil dipstick for level and examine the oil's color and consistency. If it's dark, thick, or below the 'low' mark, it needs to be changed. Ensure the correct viscosity (0W-20 synthetic) is being used.
    Typical fix: Perform an engine oil and filter change using the manufacturer-specified oil. This is the cheapest and most important first diagnostic step.
    Est. part cost: $40-$80
  3. Failing Oil Control Valve (OCV) / VVT Solenoid 🟡 Medium Probability The OCV is a solenoid that can become clogged with sludge from old oil or fail electrically, preventing it from directing oil to the cam phaser. They are a known failure point on FA/FB engines. 🎬 See this walkthrough on how to replace the VVT solenoid
    How to confirm: A technician can command the OCV on and off with a scan tool to check its response. It can also be removed and inspected for sludge on its filter screens. A common diagnostic trick is to swap the Bank 1 (passenger side) and Bank 2 (driver side) intake OCVs; if the code changes from P0016 to P0018, the valve is confirmed to be faulty.
    Typical fix: Replacement of the faulty Oil Control Valve for Bank 1 intake.
    Est. part cost: $80-$150
  4. Stretched Timing Chain or Failed Tensioner ⚪ Low Probability While less common on newer vehicles, timing chains can stretch over their service life, or the hydraulic tensioner can weaken. However, this should be considered only after the software, oil, and OCVs have been ruled out, as it is often misdiagnosed.
    How to confirm: This is a mechanical inspection that requires partial engine disassembly to check timing marks. A more advanced scan tool diagnostic involves disabling the OCVs and checking the 'VVT Adv. Ang. Amount' at startup. A deviation of more than +/- 10 degrees from the 0-degree reference value can indicate a slipped chain tooth.
    Typical fix: Replacement of the timing chain, guides, and tensioners. This is a labor-intensive and expensive job.
    Est. part cost: $200-$500

Rare But Worth Checking

  • Faulty Camshaft or Crankshaft Position Sensor: While these sensors are often blamed, they are less likely to fail than the OCV or have oil-related issues. A sensor failure usually triggers a specific sensor circuit code (like P0340) in addition to P0016.
  • Damaged Camshaft Phaser / Sprocket: The actuator on the end of the camshaft can fail mechanically, getting stuck or having its internal lock pin break. This is an expensive repair and typically diagnosed only after all other possibilities are eliminated, as seen in some owner forum posts.
  • Incorrectly Retained ECM Learned Values: The ECM can 'learn' and store incorrect cam/crank correlation values, especially after a period of running with low oil pressure or a failing part. Even after the mechanical or electrical issue is fixed, the ECM may not be able to relearn the correct values, causing the code to persist. A special procedure is needed to clear this memory.

Diagnosis Steps

  1. Check for Technical Service Bulletins (TSBs): This is the most critical first step. Ask a dealer or equipped independent shop to check if TSB #09-120-24R applies and if the ECM has the latest software. If not, perform the update.
  2. Check Engine Oil: Verify the oil level is correct and the oil is clean and of the proper 0W-20 viscosity. If in doubt, perform an oil and filter change. This is the simplest and cheapest potential fix.
  3. 🎬 Watch: Four DIY methods to fix a P0016 engine code
  4. Scan Tool Analysis: Use a professional scan tool to monitor live data for the VVT system. Command the Bank 1 intake OCV and observe its response. Check for any other 🎬 Watch: A helpful guide on testing your VVT solenoid stored fault codes.
  5. Test the Oil Control Valve (OCV): If the OCV is suspect, swap it with the OCV from Bank 2 (driver's side). Clear the codes and drive the vehicle. If the code returns as P0018, the OCV is confirmed faulty and should be replaced.
  6. Inspect Cam/Crank Sensors: If the problem persists, inspect the wiring and connectors for the camshaft and crankshaft position sensors for damage or corrosion.
  7. Mechanical Timing Inspection: If all else fails, a mechanical inspection is required. A technician can check for a slipped timing chain by unplugging the OCVs and monitoring the 'VVT Adv. Ang. Amount' PID on a scan tool during startup. A value significantly different from 0 degrees (e.g., +/- 10 degrees) suggests a jump in timing.
  8. Clear Learned Values: If a mechanical part (like an OCV or timing chain) was replaced and the code returns, the ECM's learned values may need to be cleared. This is not a standard code clear and may require a specialized scan tool with a 'test mode' function to force the ECM to relearn the base timing.

Parts You'll Likely Need

  • Engine Oil Control Valve (VVT Solenoid) (OEM #10921AA231 (Verify with VIN)) — This solenoid is a common failure point. It can get clogged with debris from dirty oil or fail electrically, preventing proper cam phasing.
    Trusted brands: Subaru (OEM), Denso, Dorman
    OEM price range: $120-$180
    Aftermarket price range: $70-$120
  • Engine Oil and Filter — Low or degraded oil is a primary cause of VVT system faults that trigger P0016. An oil change is the cheapest and easiest first step in diagnosis.
    Trusted brands: Idemitsu (OEM supplier), Mobil 1, Pennzoil Platinum
    OEM price range: $15-$25 (Filter)
    Aftermarket price range: $8-$15 (Filter)

Related Codes That Often Appear With This One

  • P0017 — This code is for the 'Crankshaft Position - Camshaft Position Correlation Bank 1 Sensor B' (the exhaust camshaft). Since it's on the same bank, an issue like a stretched chain, low oil pressure, or an ECM glitch can affect both intake and exhaust cams simultaneously. TSB #09-120-24R also lists this code as being fixed by the ECM reprogram.
  • P0018 / P0019 — These are the equivalent correlation codes for Bank 2 (driver's side). Seeing them alongside P0016 could point to a systemic issue like severe oil degradation or a major timing problem. The diagnostic swap of an OCV from Bank 1 to Bank 2 would cause P0016 to become P0018 if the valve is faulty.
  • P000A — This code means ''A' Camshaft Position Slow Response Bank 1'. It can be a precursor to P0016, indicating the AVCS system is struggling to adjust timing, often due to oil flow or pressure problems.

Technical Service Bulletins (TSBs) & Recalls

  • Bulletin #09-120-24R: Announces the availability of new ECM reprogramming files to fix DTCs P0016, P0017, P0018, P0019, and P0087 on 2020-22 Legacy/Outback and other models by enhancing self-diagnosis logic.
  • Bulletin #09-98-22: A similar bulletin for the 2019-22 Subaru Ascent, which uses the same FA24 engine, also addresses P0016-P0019 with an ECM reprogram.
  • Bulletin #02-163-16R: A general diagnostic procedure for all AVCS-related DTCs on FA/FB engines, providing detailed steps for checking chain timing and testing components.

Platform-Specific Known Issues

  • A software glitch in the Engine Control Module (ECM) is a known issue that can cause P0016 to be set incorrectly. TSB #09-120-24R was issued to resolve this with a software update.
  • In some cases, even after a mechanical repair (like an OCV or timing chain replacement), the ECM can retain old incorrect learned values, causing the code to persist. A special procedure using a scan tool's 'test mode' is required to clear this memory, which is a step beyond a simple code clear and may not be known by all shops.

Mechanic-Grade Diagnostic Values

  • VVT Adv. Ang. Amount (at idle, OCV unplugged) — expected: 0 degrees. Failure: A consistent value of +/- 10 degrees or more suggests the timing chain has jumped a tooth.
  • VVT Initial Position Learning Value (scan tool special function) — expected: ~52 to 72 degrees (Intake Cam, based on similar FA/FB engines). Failure: A value significantly outside the expected range (e.g., 46 degrees) points to a faulty cam sprocket or a corrupted learned value in the ECM.
  • Oil Control Valve (OCV) Solenoid Resistance — expected: Approximately 8 to 12 ohms. Failure: A reading far outside this range, or an open circuit (infinite resistance), indicates a failed solenoid coil.
  • Engine Oil Pressure — expected: > 10 PSI at warm idle; > 30 PSI at 3000 RPM. Failure: Pressure below these specifications indicates a lubrication problem that will cause VVT system codes.

Hidden / Shadow Codes Worth Checking

  • Mode $06, MID $35/$36, TID $8B-$8E: This data is used for repair verification. After a fix, these test IDs monitor the AVCS (VVT) system during a drive cycle. A 'Val.' (Diagnostic Value) of 1000 or greater indicates a recurring problem. (see via Subaru Select Monitor 4 (SSM4) or an equivalent advanced scan tool with Mode $06 capabilities.)

Scan Tool Commands That Help

  • Launch / Autel (or equivalent advanced scan tool): Clear Learned VVT Values via 'Test Mode' — Use this after a mechanical repair (like OCV or timing chain replacement) if P0016 returns. The ECM may have stored incorrect 'learned' base timing values in non-volatile memory that a standard code clear won't erase. This special procedure forces a reset.
  • Subaru Select Monitor (SSM): Clear Memory — This is the standard procedure to clear DTCs and reset adaptive values. It should be performed before many diagnostic steps, such as the 'Chain Timing Check', to ensure a clean baseline.

Wiring & Ground Locations

  • ECM Main Ground — On the intake manifold, typically near the throttle body.. The ECU gets its primary ground reference from the intake manifold. If this ground is poor (due to corrosion or modifications like TGV deletes with plastic spacers), it can cause erratic sensor readings and phantom codes. Ensuring a clean, tight ground path from the manifold to the chassis is critical.
  • Engine Control Module (ECM) — Located in the passenger-side front footwell. The carpet must be pulled back and a metal protective plate removed to access it.. Required for physical inspection of the module and its connectors for damage or water intrusion, or for replacement/reprogramming.

Real Owner Repair Stories

  • Reddit user in r/WRX (2017 WRX (Similar FA engine and VVT logic)) — P0016 code, rough idle, sluggish in first gear.
    ❌ Tried (didn't work) An oil change did not resolve the code., A dealership quoted $2100 for a full timing chain job, which was likely unnecessary.
    ✅ What actually fixed it After an initial ECU update didn't fully solve the issue, the final repair was the replacement of the Oil Control Valve (OCV). The P0016 code was resolved and did not return.
  • Reddit user in r/WRX (Subaru WRX (year not specified, but modern)) — Persistent P0016 code.
    ❌ Tried (didn't work) Googling parts and self-diagnosis led to confusion and extended downtime.
    ✅ What actually fixed it The user took the car to a Subaru dealer and requested an ECU 'reformat' (reprogram). Despite the dealer service writers being skeptical, the procedure cost about $175 and completely solved the problem.

OEM Part Supersession History

  • 10921AA220, 10921AA23010921AA231 — Internal design improvements to the Oil Control Valve (OCV).

Model Year Variations Within This Range

  • 2020-2022: The TSB #09-120-24R for the ECM reprogram specifically lists the 2.5L Outback and Legacy models for these years, indicating a known software issue from the factory for this particular production run.
  • 2020-2021: Outback models with the 2.4L Turbo engine were subject to a safety recall (WRK-21/22R) for a Continuously Variable Transmission (CVT) chain that could slip or break. While this is not the engine timing chain, a resulting loss of power could be confused with an engine-related fault code.
How to Fix P0016 Engine Code in 6 Minutes [4 DIY Methods / Only $6.94]
How to Fix P0016 Engine Code in 6 Minutes [4 DIY Methods / Only $6.94]
Replace/upgrade FA20 FB20 oil control valve vvt
Replace/upgrade FA20 FB20 oil control valve vvt
How To Test A Variable Valve Timing (VVT) Solenoid (Andy’s Garage: Episode - 262)
How To Test A Variable Valve Timing (VVT) Solenoid (Andy’s Garage: Episode - 262)
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 21, 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 P0016 for:
  • Subaru OUTBACK: 202020212022
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