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

P0018 on 2018-2022 Subaru Crosstrek: Causes and Fixes for Camshaft Correlation Error

On a 2018-2022 Subaru Crosstrek, code P0018 is most often caused by low/dirty engine oil or the need for a simple software update from the dealer (TSB 09-120-24R). If oil and software are good, the next most likely cause is a faulty oil control valve (solenoid) on the driver's side of the engine (Part No. 10921AA23B), which costs about $80-$150 for the part.

16 minutes to read 2018-2022 Subaru CROSSTREK
Most Likely Cause
Low or Dirty Engine Oil
Est. Time
6.2 hrs
Shop Labor
$100 – $3500
Parts Price
$40 – $2300
⚠️ Drivable, but... — Yes, but it's recommended to get it diagnosed soon. While some owners report no change in drivability, continued operation could lead to reduced fuel economy, rough idle, stalling, or, in severe cases of mechanical timing failure, engine damage.
Key Takeaways
  • Always check your engine oil level and condition first; it's the easiest and cheapest potential fix.
  • Ask a dealer about TSB 09-120-24. A simple software update might be all that is needed to fix the code.
  • The problem is on the driver's side of the engine ('Bank 2'). The most common part to fail is the Oil Control Valve (OCV), not the sensor.
  • Do not immediately assume you need an expensive timing chain replacement. This is the least likely cause and should only be considered after all other diagnostic steps have been exhausted.
  • Multiple dashboard lights (Traction Control, Cruise Control) turning on with the Check Engine Light is normal for a Subaru and does not indicate additional problems.
The trouble code P0018 stands for "Crankshaft Position - Camshaft Position Correlation Bank 2 Sensor A". This means the Engine Control Module (ECM) has detected that the rotation of the intake camshaft on Bank 2 (the driver's side on a Subaru boxer engine) is out of sync with the rotation of the crankshaft. The engine uses this relationship to control valve timing for optimal performance and efficiency via the Active Valve Control System (AVCS). When they don't align as expected, the ECM flags the error and turns on the Check Engine Light.

What's Unique About the 2018-2022 Subaru CROSSTREK

2018-2022 Subaru Crosstrek being diagnosed for ECM software update
For the 2018-2022 Crosstrek, Subaru issued TSB 09-120-24R to address overly sensitive ECM logic that falsely triggers P0018. Always check for software updates before replacing mechanical parts.

For this specific generation of Crosstrek, Subaru has issued a Technical Service Bulletin (TSB 09-120-24R) acknowledging that this code can be falsely triggered by overly sensitive software logic. This TSB, revised as recently as March 2025, provides new ECM reprogramming files to enhance the self-diagnosis logic. Before assuming an expensive mechanical failure, it's critical to check if this ECM software update has been performed, as it was specifically released to fix this issue. Forum users confirm that dealers perform this flash to resolve the code. This makes the diagnostic approach different from vehicles where this code points almost exclusively to a mechanical or sensor fault.

🎬 Watch: DIY walkthrough for P0016 and P0018 correlation codes.

Diagnostic Flowchart

Comparison of clean, golden engine oil on a dipstick versus dark, dirty, and sludged engine oil.
Because the Subaru AVCS system relies on hydraulic pressure, dirty or low oil is a primary trigger for P0018. Always verify your oil condition before proceeding to sensor tests.

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

What is the current status of your engine oil and ECM software?
→ Top up or perform a complete oil and filter change using Subaru-specified 0W-20 synthetic oil ($40-$80).
→ Have a Subaru dealer check and reprogram the ECM with the updated software per TSB 09-120-24R ($0-$200).
Have you tested the driver's side Oil Control Valve (OCV)?
→ Swap the driver's side top OCV with the passenger side. 🎬 See how to inspect and replace the oil control valve. If the code changes to P0016, replace it (OEM 10921AA23B, $80-$150).
→ Inspect wiring for damage, then swap camshaft position sensors ($50-$100). 🎬 Watch: How to test and replace camshaft position sensors. If unresolved, seek a professional timing chain inspection.

Symptoms You May Notice

  • Check Engine Light is on
  • Traction control light on (this system is disabled by default when a CEL is present)
  • Flashing cruise control light (also disabled due to the CEL)
  • Hill descent light on
  • Rough or unstable idle
  • Hesitation or stumbling during acceleration
  • Reduced fuel economy
  • Engine stalling
  • Rattling or ticking noise from the engine
⚠️ Don't Waste Money on the Wrong Fix
  • Replacing the camshaft or crankshaft position sensors without first checking oil level/condition or investigating the TSB for the ECM reprogram.
  • Assuming a stretched timing chain before testing the much cheaper and more accessible Oil Control Valves.
  • Replacing parts without clearing the code and performing several drive cycles, as some codes may be stored as 'permanent' and require this to clear.

Most Likely Causes

A clogged or sludged Oil Control Valve (OCV) from a Subaru engine.
The Oil Control Valve (OCV) can become clogged with sludge or fail electronically, preventing it from correctly regulating oil flow to the cam phaser.
  1. Low or Dirty Engine Oil 🔴 High Probability The Active Valve Control System (AVCS) is hydraulic and extremely sensitive to oil pressure and cleanliness. Low or sludged oil is a very common cause for this code on Subarus, as it can clog passages in the oil control solenoids or cam phasers.
    How to confirm: Check the oil level on the dipstick. Inspect the oil's color and consistency. If it's low, dark, or thick, it needs to be changed. Many forum users recommend an oil change as the very first step.
    Typical fix: Top up the oil to the correct level or perform a complete oil and filter change using the manufacturer-specified 0W-20 synthetic oil. Some users suggest an engine oil flush for persistent issues.
    Est. part cost: $40-$80
  2. Outdated Engine Control Module (ECM) Software 🔴 High Probability → Shop Engine Control Module (ECM) Subaru released TSB 09-120-24R specifically for 2018-2022 Crosstreks (and other models) to fix faulty diagnostic logic that could erroneously trigger P0018, P0016, P0017, and P0019.
    How to confirm: A Subaru dealer or a well-equipped independent shop can check the current software calibration ID against the one listed in the TSB. This is a known issue discussed frequently in owner forums.
    Typical fix: Reprogramming the ECM with the updated software file provided by Subaru. This is typically a dealer-level fix.
    Est. part cost: $0-$200
  3. Faulty Oil Control Valve (OCV) / VVT Solenoid 🟡 Medium Probability → Shop Engine Variable Valve Timing (VVT) Solenoid The OCV can become clogged with sludge or fail electronically, preventing it from correctly regulating oil flow to the cam phaser. It's a common failure point in VVT systems and a widely reported fix in forums.
    How to confirm: The valve for Bank 2, Sensor A (intake) is on the driver's side, top position. It can be removed and tested for resistance (typically 6.9-7.9 ohms). A common DIY method is swapping it with the identical valve from the passenger side (Bank 1) to see if the code follows and changes to P0016.
    Typical fix: Replace the faulty Oil Control Valve. The OEM part number is 10921AA23B, which supersedes 10921AA23A.
    Est. part cost: $80-$150
  4. Faulty Camshaft Position Sensor ⚪ Low Probability → Shop Engine Camshaft Position Sensor Like any sensor, it can fail and send incorrect data to the ECM. It's less common than an OCV failure but is a known cause. One user on a forum noted finding metallic particles on the sensor tip, indicating other potential issues.
    How to confirm: The sensor for Bank 2, Sensor A (intake) is on the driver's side. It can be swapped with the sensor from the passenger side to see if the code changes to P0016. It can also be tested with a multimeter for resistance, which should be between 1 to 4 kilo-ohms for many Subaru models.
    Typical fix: Replace the faulty camshaft position sensor.
    Est. part cost: $50-$100

Rare But Worth Checking

  • Stretched Timing Chain or Failed Tensioner: → Shop Engine Timing Chain This is the most serious and expensive possible cause. It typically occurs at higher mileage or if oil changes have been neglected. If you hear a rattling noise from the front of the engine, this becomes more likely. Some mechanics report this is a common fix for this code.
  • Failed Camshaft Phaser/Sprocket: → Shop Engine Camshaft The sprocket itself can fail internally, getting stuck in one position. This requires significant labor to replace as the timing cover must be removed. A dealership quoted one owner $3,100 for this repair on a 2015 model with both P0016 and P0018 codes.

Diagnosis Steps

  1. Check Engine Oil: Verify the oil level is full and the oil is clean. If in doubt, perform an oil and filter change with Subaru-specified 0W-20 oil. This is the first step recommended in multiple forums and by mechanics.
  2. Check for TSBs: Ask a Subaru dealer or qualified shop to check if TSB 09-120-24R (ECM Reprogram) applies and has been performed. This is a critical, vehicle-specific step.
  3. Inspect Wiring: Visually inspect the wiring and connector for the intake camshaft position sensor and the oil control valve on the driver's side (Bank 2) for any damage, corrosion, or oil contamination. Rodents chewing wires is a known possibility.
  4. Test the Oil Control Valve (OCV): The Bank 2 intake OCV is the top solenoid on the driver's side. Swap it with the passenger's side intake OCV. Clear the codes and drive the vehicle. If the code changes to P0016, the OCV is bad and needs to be replaced. You can also test its resistance, which should be between 6.9 and 7.9 ohms.
  5. Test the Camshaft Position Sensor: If the OCV swap does not isolate the problem, perform the same swap test with the camshaft position sensors. If the code moves to P0016, the sensor is faulty.
  6. Mechanical Timing Inspection: If all previous steps fail to resolve the code, the issue is likely mechanical. A professional technician should inspect the timing chain, guides, tensioners, and cam phasers for wear or damage. This is an advanced, labor-intensive job.

Parts You'll Likely Need

  • Oil Control Valve (VVT Solenoid) (OEM #10921AA23B) — This valve controls oil flow to the cam phaser and is a frequent point of failure, either by clogging or electronic malfunction. It's a primary cause after oil issues and software are ruled out.
    Trusted brands: Subaru (OEM), Denso, Hitachi
    OEM price range: $120-$160
    Aftermarket price range: $70-$110
  • Camshaft Position Sensor (OEM #22053AA151) — Can fail and send incorrect timing data to the ECM. It's a common diagnostic step to replace this if the OCV is confirmed to be good.
    Trusted brands: Subaru (OEM), Bosch, NTK
    OEM price range: $80-$120
    Aftermarket price range: $40-$80
  • Timing Chain Kit — In high-mileage or poorly maintained engines, the chain can stretch, causing a permanent correlation fault that sensors and solenoids cannot fix. This is a major repair.
    Trusted brands: Subaru (OEM), Aisin
    OEM price range: $500-$800
    Aftermarket price range: $300-$500

Related Codes That Often Appear With This One

  • P0016 — This is the equivalent code for Bank 1 (passenger side). Seeing both P0016 and P0018 together often points to a systemic issue like low/dirty oil, an ECM software problem, or a stretched timing chain affecting the whole engine.
  • P0017, P0019 — These are the correlation codes for the exhaust camshafts ('B' sensors). Seeing them with P0018 can also indicate a widespread timing issue or the need for the ECM reprogram mentioned in TSB 09-120-24R.

Technical Service Bulletins (TSBs) & Recalls

A technician using a diagnostic laptop to reprogram a vehicle's Engine Control Module (ECM).
TSB 09-120-24R provides updated ECM calibration files to fix overly sensitive diagnostic logic that erroneously sets P0018.
  • Announces availability of new reprogramming files for the ECM to remedy DTCs P0016, P0017, P0018, and P0019 due to overly sensitive diagnostic logic. Applies to 2018-22 Crosstrek, 2017-22 Impreza, and other models.

Platform-Specific Known Issues

  • Subaru Technical Service Bulletin 09-120-24R announces an ECM reprogram specifically to remedy DTC P0018 (among others) on 2018-2022 Crosstreks, indicating a known software logic issue.
  • When the Check Engine Light illuminates, Subaru's vehicle dynamics control system automatically disables traction control, stability control, and cruise control, causing multiple warning lights to appear on the dashboard.
  • The OCVs for intake and exhaust on the same bank are located one above the other. For P0018, which is Bank 2 Sensor 'A' (Intake), the correct solenoid is the top one on the driver's side.

Mechanic-Grade Diagnostic Values

  • Oil Control Valve (OCV) / VVT Solenoid Resistance — expected: 6.9 - 7.9 Ohms at 68°F (20°C). Failure: A reading outside this range indicates a faulty solenoid coil.
  • Camshaft Position Sensor Resistance — expected: 1.0 - 4.0 kΩ (kilo-ohms). Failure: A reading outside this range, or an open circuit, indicates a failed sensor.
  • AVCS Live Data at Idle (Cobb Accessport) — expected: AVCS Left (Bank 2) and AVCS Right (Bank 1) should both read near 0-5 degrees.. Failure: One side reading a high value (e.g., 50 degrees) while the other is near zero points to a stuck phaser or faulty OCV on the high-reading bank.
  • Mechanical Timing Check via Live Data — expected: With the OCVs unplugged, the camshaft position sensor value should be close to 0° at idle.. Failure: A value of positive or negative 10° (or a multiple) suggests the timing chain has skipped a tooth.

Hidden / Shadow Codes Worth Checking

  • Permanent DTC (P-code): After a repair, a standard OBD-II scanner may clear the 'active' and 'pending' P0018 code, but a 'permanent' version may remain stored in the ECM. This permanent code does not keep the check engine light on but can cause confusion. It will only clear itself after the vehicle's internal monitors have successfully run over several drive cycles. (see via Visible with more advanced scan tools that can differentiate between active, pending, and permanent fault codes.)

Scan Tool Commands That Help

  • Subaru Select Monitor (SSM) or advanced aftermarket scanner (e.g., Autel): Clear Learned VVT Values / Test Mode DTC Clear — After replacing an OCV or other timing component, the ECM may retain old learned values, preventing the code from clearing. Some aftermarket tools have a special procedure involving a diagnostic fuse to force-clear permanent codes that don't clear with a standard command.
  • Subaru Select Monitor (SSM) or equivalent: AVCS Duty Cycle Command / Actuator Test — This bidirectional command allows a technician to manually activate the OCV solenoid and observe the change in camshaft angle via live data. This directly tests the solenoid's and phaser's hydraulic response, confirming if the circuit and parts are working.

Wiring & Ground Locations

  • Main ECU Grounding Point — On the top of the intake manifold.. The ECU and its sensors rely on a clean ground reference. On many Subarus, the main ECU ground is on the intake manifold. A poor connection here can cause erratic sensor readings and phantom codes, including timing correlation faults.
  • Engine Harness to Bulkhead Harness Connection — In the engine bay, where the harness on the engine block connects to the main body harness that passes through the firewall.. This is a critical connection point for all engine sensor signals, including the cam and crank sensors, on their way to the ECU. Corrosion or damage at this junction can disrupt signals and trigger correlation codes.

Real Owner Repair Stories

  • Reddit user in r/WRX (Subaru WRX (similar FA engine and AVCS system)) — P0018 code appeared but the car ran fine.
    ❌ Tried (didn't work) Initial diagnosis pointed to cam sensor or OCV solenoid.
    ✅ What actually fixed it The user replaced both the OCV solenoid and the camshaft position sensor. However, the code returned. The final resolution came after using a different, more advanced scan tool that could see and clear the 'permanent' DTC. After clearing the permanent code and performing several drive cycles, the code did not return, suggesting the initial parts replacement had worked but the stubborn code needed a specific clearing procedure.
  • Reddit user in r/WRX (2017 WRX with 126,000 miles) — P0018 code, car sounds and runs fine.
    ❌ Tried (didn't work) Swapping cam position sensors from left to right., Swapping OCVs (solenoids) from left to right., Getting an oil change.
    ✅ What actually fixed it The user discovered that P0018 can be a permanent code that standard clearing doesn't remove. The fix was to use an Autel scan tool, put the car in a diagnostic mode using a fuse, and then use the scan tool's 'test mode' to clear the DTC. The code did not return, indicating no mechanical fault was present.

When the Usual Fixes Don't Work

  • While the most common fixes are oil, software, or an OCV solenoid, multiple owner accounts exist where these steps did not solve the problem. In one case, a user swapped both sensors and OCVs from side-to-side with no change in the P0018 code. The final solution was a specific procedure using an advanced scan tool to clear a 'permanent' version of the code that persisted after the initial fault was fixed, highlighting that sometimes the problem is residual data in the ECM, not the parts themselves.

OEM Part Supersession History

  • 10921AA23A10921AA23B — Standard part revision for improved reliability or manufacturing process change.
    Heads up: The new part (10921AA23B) is a direct replacement for the old one and is fully compatible.

Model Year Variations Within This Range

  • 2021-2022: The 2.5L FB25D engine became available on Sport and Limited trims. While larger, it uses the same Dual AVCS technology and components like the OCV (10921AA23B) are shared with the 2.0L FB20D. The causes and diagnostic procedures for P0018 remain identical between the two engines.
Causes and Fixes P0018 Code: Crankshaft Position- Camshaft Position Correlation (Bank 2, Sensor A)
Causes and Fixes P0018 Code: Crankshaft Position- Camshaft Position Correlation (Bank 2, Sensor A)
Subaru Camshaft Position Sensor P0340 and P0341 Testing and Replacement
Subaru Camshaft Position Sensor P0340 and P0341 Testing and Replacement
DIY | 2005 - 2025 Subaru XV Crosstrek P0016 & P0018 Codes | Crankshaft & Camshaft Correlation Bank
DIY | 2005 - 2025 Subaru XV Crosstrek P0016 & P0018 Codes | Crankshaft & Camshaft Correlation Bank
iWire Grounding Kit Install Guide - Subaru Grounding Issue Solution
iWire Grounding Kit Install Guide - Subaru Grounding Issue Solution
P000A Oil Control Valve Subaru Crosstrek
P000A Oil Control Valve Subaru Crosstrek
How To Clear Permanent Diagnostic Trouble Codes
How To Clear Permanent Diagnostic Trouble Codes
Clear Permanent Codes by doing this with your vehicle!
Clear Permanent Codes by doing this with your vehicle!
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 P0018 for:
  • Subaru CROSSTREK: 20182019202020212022
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