P0019 on 2012-2019 Subaru Impreza: Crank-Cam Correlation Fixes
P0019 on a Subaru Impreza most often points to a problem with the oil-controlled variable valve timing system. The most common fixes are checking for low or dirty oil, or replacing a faulty Oil Control Valve (OCV) solenoid for Bank 2 (driver's side) exhaust, which costs around $100-$150 for the part. The specific OCV is located on the lower rear of the driver's side cylinder head. In some cases, a simple ECM reprogram at the dealer is all that's needed, as outlined in Subaru TSBs.
- Always check your engine oil level and condition first; it's the #1 cause for P0019 on a Subaru.
- The next most likely culprit is a faulty Oil Control Valve (OCV) for the driver's side exhaust cam.
- Swapping the suspect OCV with its counterpart on the other side of the engine is a cheap and effective way to diagnose a bad solenoid.
- Even after fixing the mechanical problem, a dealer ECM reprogram might be necessary to permanently clear the code, as noted in Subaru TSBs.
What's Unique About the 2012-2019 Subaru IMPREZA

Subaru's Active Valve Control System (AVCS) is highly sensitive to oil level and condition. Many P0019 codes on these FB20 engines are triggered simply by low oil levels, which can starve the AVCS actuators. Early FB engines (approx. 2012-2015) were also known for higher-than-average oil consumption, making regular oil level checks critical. Additionally, Subaru has issued Technical Service Bulletins (TSBs) acknowledging that the ECM software can be overly sensitive, sometimes requiring a dealer reprogram to fix the code 🎬 Watch: A quick breakdown of P0019 causes and permanent solutions. after a mechanical issue (like a low oil event) has been resolved.
Diagnostic Flowchart

Tap your situation to follow the diagnostic path that matches what you're seeing on this vehicle.
Generation note: This range covers the 4th generation (2012-2016) with the FB20B engine and the 5th generation (2017-2019) with the direct-injection FB20D engine. The causes and diagnostic principles are largely the same for both generations as they share the same fundamental engine architecture and AVCS design. Early years of the 4th generation were more susceptible to oil consumption issues which can directly lead to this code.
Symptoms You May Notice
- Check Engine Light is on
- Rough or unstable idle, sometimes feeling like it's about to stall
- Hesitation or stumbling on acceleration
- Reduced fuel economy
- Engine may be difficult to start
- Noticeable loss of power or sluggish throttle response
- Replacing the camshaft or crankshaft position sensors without first checking the oil level and condition.
- Replacing the timing chain when the actual problem is a much cheaper and easier to replace Oil Control Valve (OCV) solenoid.
- Assuming the engine is damaged when only an ECM reflash is needed per TSBs.
Most Likely Causes

- Low or Dirty Engine Oil 🔴 High Probability The AVCS system uses oil pressure to adjust cam timing. Early FB20 engines, in particular, can consume oil, and a low level is the most frequent trigger for VVT-related codes. Sludgy oil can also clog the small passages in the OCV solenoids.
How to confirm: Check the engine oil dipstick. If the level is low or the oil is dark and sludgy, this is the likely starting point. This should always be the first check.
Typical fix: Top up or perform a complete oil and filter change with the correct viscosity oil (usually 0W-20). Clear the codes and perform a drive cycle. Many owners report this alone solves the problem.
Est. part cost: $30-$70 - Faulty Oil Control Valve (OCV) Solenoid 🟡 Medium Probability The OCV for the Bank 2 exhaust can get clogged with sludge or fail electrically, preventing it from correctly directing oil to the cam phaser. It is a very common failure point on these engines.
How to confirm: The Bank 2 exhaust OCV is on the driver's side, lower position. Inspect the electrical connector for oil, which indicates a leaking and faulty solenoid. The most effective DIY test is to swap the Bank 2 exhaust OCV with the Bank 1 exhaust OCV (passenger side, lower). If the code changes to P0017 (Bank 1 Sensor B), the solenoid is confirmed bad.
Typical fix: Replace the Bank 2 exhaust OCV solenoid. The part is held by one or two 10mm bolts. 🎬 See this walkthrough on how to replace the OCV solenoid.
Est. part cost: $100-$180 - Faulty Camshaft Position Sensor ⚪ Low Probability While less common than oil-related issues, the sensor itself can fail and send incorrect data to the ECM. The sensor is located at the top of the engine on the timing cover.
How to confirm: Swap the Bank 2 exhaust camshaft position sensor (driver's side) with the Bank 1 exhaust sensor (passenger's side). If the code changes to P0017, the sensor is faulty. The sensor is held by a single 10mm bolt.
Typical fix: Replace the Bank 2 exhaust camshaft position sensor. The bolt should be torqued to 4.7 ft-lbs. 🎬 Watch: Step-by-step guide to replacing the camshaft position sensor.
Est. part cost: $50-$100 - Stretched Timing Chain ⚪ Low Probability Over high mileage (typically over 100k-150k miles), the timing chain can stretch, causing a permanent correlation error between the cams and crank. While the FB engine uses a chain designed to last the engine's life, severe oiling issues can accelerate wear.
How to confirm: This is a complex diagnosis. It often requires checking cam/crank correlation with an advanced scan tool (Subaru SSM). A rattling noise from the front of the engine on startup can be an indicator. Physical inspection by removing the timing cover is the ultimate confirmation.
Typical fix: Replace the timing chain, tensioners, and guides. This is a labor-intensive job, often costing over $1500.
Est. part cost: $400-$800
Rare But Worth Checking
- Clogged Oil Passages or OCV Filters: Some Subaru engines have small mesh filters in the oil banjo bolts for the AVCS system. These can get clogged with debris, especially after an engine failure or with poor maintenance, starving the OCVs of oil. While more discussed on the turbo EJ engines, it's a possibility on the FB. Cleaning or removing these filters can restore oil flow.
- Faulty Camshaft Phaser (AVCS Sprocket): The mechanical sprocket itself can fail, getting stuck in one position. This is less common than an OCV failure but can happen, especially if the engine was run low on oil. Diagnosis often requires compressed air to test the phaser's movement with the valve cover removed.
- ECM Software Glitch: As per Subaru TSBs #11-127-13R and #11-128-13, the ECM logic may be too sensitive. After fixing a mechanical or oil issue, the code may persist until a dealer performs an ECM reprogram. Some owners on forums have confirmed a dealer reflash was the final fix.
Diagnosis Steps
- Check Engine Oil Level and Condition: This is the first and most important step. If low, top it off, clear the code, and drive. If dirty, perform an oil and filter change with 0W-20 synthetic oil. This resolves the issue in a high number of cases.
- Scan for Other Codes: Check if other codes are present that could point to a more specific issue.
- Inspect and Test the OCV Solenoid: Locate the exhaust OCV solenoid on Bank 2 (driver's side, lower position). Check the connector for oil, a sign of failure. Swap the suspect OCV with the one from the passenger side (Bank 1 exhaust). Clear the codes and drive. If the fault moves to P0017, the OCV is bad and needs replacement.
- Inspect and Test the Camshaft Position Sensor: Locate the exhaust cam sensor on the top front of the driver's side timing cover. Swap it with the passenger side sensor. If the code moves to P0017, the sensor is bad.
- Check for ECM Update: If you've corrected an oil issue or replaced a part but the code returns, contact a Subaru dealer. Reference TSBs #11-127-13R and #11-128-13 to see if an ECM reprogram is needed. This is a known issue where the fault logic is too sensitive.
- Advanced Diagnosis: If the above steps don't resolve the issue, the problem is likely more serious, such as a stretched timing chain, clogged banjo bolt filter, or failed AVCS phaser, which requires professional diagnosis with tools like the Subaru Select Monitor (SSM).
Parts You'll Likely Need
- Engine Oil and Filter — Incorrect oil level or condition is the leading cause of this code on Subaru vehicles.
Trusted brands: Subaru Genuine (0W-20), Idemitsu, Mobil 1
OEM price range: $40-$60
Aftermarket price range: $30-$50 - Oil Control Valve (OCV) Solenoid (Bank 2 Exhaust)
(OEM #10917AA070)— This solenoid controls oil flow to the cam phaser and is a common failure point, getting stuck or clogged.
Trusted brands: Subaru Genuine, Denso, Hitachi
OEM price range: $120-$180
Aftermarket price range: $80-$130 - Camshaft Position Sensor
(OEM #22056AA250)— If the sensor itself fails, it will provide incorrect data, triggering the correlation code. It's less common but a valid cause.
Trusted brands: Subaru Genuine, Denso, NTK/NGK
OEM price range: $80-$120
Aftermarket price range: $50
Related Codes That Often Appear With This One
- P0018 — Crankshaft Position - Camshaft Position Correlation Bank 2 Sensor A. This code relates to the intake camshaft on the same bank (driver's side). Seeing both may indicate a more significant timing issue on that bank, like a timing chain problem or a widespread oil pressure issue.
- P0017 — Crankshaft Position - Camshaft Position Correlation Bank 1 Sensor B. This is the same error but for the passenger side exhaust cam. If this code appears after swapping OCVs or Cam Sensors from the driver's side, it confirms the swapped part was faulty.
- P0021 — 'A' Camshaft Position - Timing Over-Advanced or System Performance (Bank 2). This is another AVCS code for the intake cam on the same bank, often pointing to a stuck OCV or phaser.
Technical Service Bulletins (TSBs) & Recalls

- 09-120-24R: Mentions P0019 and new ECM reprogramming files.
- 11-127-13R: Announces a diagnostic procedure and updated ECM reprogramming files to address DTCs P0017 and P0019.
- 11-128-13: Announces availability of ECM reprogramming to address DTCs P0017 and P0019.
- 11-130-13R: Provides inspection procedures for camshaft position sensor issues, including measuring sensor clearance and using shims if needed, which can relate to these correlation codes.
Platform-Specific Known Issues
- Subaru issued several Technical Service Bulletins (TSBs) for ECM reprogramming to address overly sensitive fault logic for P0019 and related codes.
- TSB 11-127-13R provides a specific diagnostic procedure for dealers to follow before replacing parts, which may involve checking AVCS diagnostic values with a scan tool and potentially replacing the ECM if values are out of spec.
- Early production FB20 engines (2012-2013) were part of a class-action lawsuit regarding oil consumption, which is a primary trigger for this code. Owners of these years should be especially vigilant about checking oil levels.
Mechanic-Grade Diagnostic Values
- Oil Control Valve (OCV) Solenoid Resistance — expected: 6.0 to 12.0 Ohms. Failure: A reading outside this range (open circuit or short) indicates a faulty solenoid.
- OCV Harness Connector Voltage — expected: 10V or more (Battery Voltage). Failure: No voltage indicates a break in the wiring harness between the power source and the connector.
- Subaru Scan Tool Mode $06 AVCS Data — expected: Value less than 1000. Failure: A value of 1000 or greater indicates a problem with the AVCS system on that bank.
- Camshaft Position Live Data (with OCV unplugged) — expected: Close to 0° at idle. Failure: A value of +/- 10° or more suggests the timing chain has skipped a tooth.
Hidden / Shadow Codes Worth Checking
- Mode $06, MID $36, TID $8C/$8E: These are not traditional codes but specific test results stored in the ECM. MID $36 corresponds to Bank 2. TID $8C and $8E likely refer to specific correlation or response tests for the exhaust camshaft ('B' sensor). A high value (over 1000) indicates a failure in that specific test. (see via Requires an advanced scan tool capable of reading Mode $06 data, such as the Subaru Select Monitor 4 (SSM4).)
Scan Tool Commands That Help
- Subaru Select Monitor (SSM) or equivalent: AVCS Diagnostic Drive Cycle — After a repair, this specific drive pattern must be followed to allow the ECM to run the internal diagnostic monitor for the AVCS system and confirm the fix.
- Subaru Select Monitor (SSM) or equivalent: Clear Memory / Reset Learned Values — Crucial for this code. The ECM can 'burn in' the fault state, and a simple code clear may not be enough. A full memory reset may be required after a part replacement, as noted in TSBs and owner forums.
- Any advanced scan tool with bidirectional control: VVT Solenoid Actuation Test — To command the OCV solenoid to open and close while the engine is running, verifying its mechanical function and response to the ECM's command without having to remove it.
Wiring & Ground Locations
- Data Link Connector — Lower portion of the instrument panel on the driver's side.. This is the primary connection point for diagnostic scan tools like the Subaru Select Monitor.
- B40, B136, F45 — These are harness connector designators visible in wiring diagrams for the Transmission Control Module (TCM) and related systems.. A fault in shared wiring or connectors can cause communication issues or erroneous codes. For example, terminal 16 of connector B40 is the power supply for the diagnostic port.
- G: B52, A: i5 (L) — These are specific ground (G) and connector (A) identifiers from a 2019 Impreza wiring guide.. A poor ground at a point like B52 could cause erratic sensor readings, leading to correlation codes like P0019.
Real Owner Repair Stories
- Reddit user R2CEE2 (2018 Subaru Crosstrek) — P0019 code appeared.
❌ Tried (didn't work) Replacing the bottom VVT (OCV) solenoid on Bank 2., Swapping camshaft position sensors to see if the code moved.
✅ What actually fixed it Replacing the VVT solenoids (plural, implying both on Bank 2) AND performing a 'test mode clear' with a Thinkdiag2 scanner to reset the ECM's learned values. - FT86Club Forum user (2013 Scion FR-S (shares FB/FA engine architecture)) — Persistent P0017/P0019 codes after engine rebuild.
❌ Tried (didn't work) Standard code clearing.
✅ What actually fixed it The user discovered that the ECM's 'initial learning values' for the AVCS system were 'burned in' and not being reset. The fix was to flash a stock engine map from a different model year (e.g., 2016 map onto a 2013 car) and then flash the correct 2013 map back on. This forced a hard reset of the learned values, which a standard scan tool could not achieve, and resolved the codes without replacing the ECU.
"I Checked Everything" — The Actual Cause
- While not a smoke test issue, a common pattern with P0019 is that replacing the correct mechanical part (like an OCV solenoid) does not clear the code. The actual cause is often a persistent fault learned by the Engine Control Module (ECM). Even after the physical problem is gone, the ECM continues to report the error. The final fix in these cases is a dealer-level ECM reflash or a hard reset of the AVCS learned values using an advanced scan tool or unconventional methods.
When the Usual Fixes Don't Work
- In multiple documented cases, the 'common fix' of simply replacing the Oil Control Valve (OCV) or camshaft sensor was not sufficient to resolve the P0019 code. Owners reported that the code would return until a more advanced step was taken to address the Engine Control Module's memory. One successful, albeit unconventional, method involved flashing a different model year's engine tune and then flashing back to the correct one, which forced a hard reset of the AVCS system's learned values. Another owner confirmed the fix only became permanent after using a scanner with a specific 'test mode clear' function, highlighting that the ECM itself is often the final hurdle after the mechanical repair is complete.
OEM Part Supersession History
Unknown, various pre-2017 OCVs→Updated OCV design— An updated Oil Control Valve (OCV) design was implemented to address reliability or performance issues.
Heads up: The old and new parts are externally identical. The newer, improved part can be identified by its production lot number, a stamp on the face of the solenoid. Parts with a date stamp starting with '17159' (159th day of 2017) or higher are the new design. When replacing, it is critical to use the updated part.
Model Year Variations Within This Range
- 2012-2016 vs 2017-2019: The 2012-2016 Impreza uses the port-injected FB20B engine. The 2017-2019 models use the direct-injected FB20D engine. While the AVCS system is fundamentally similar, fuel delivery and engine management specifics differ.
- Mid-2017 onwards: Subaru introduced an updated Oil Control Valve (OCV) design starting on the 159th day of 2017. Vehicles produced after this date likely have the improved part from the factory.
- 2012-2014 vs 2015-2016: Some parts suppliers, like LKQ, differentiate between FB20B engines from 2012-2014 and those from 2015-2016, suggesting a potential incompatibility or change in ancillary components, even though both are considered FB20B.
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 IMPREZA:
- 🎬 Helpful Videos
- 🛍️ Shop This Part
- What's Unique About the 2012-2019 Subaru IMPREZA
- Diagnostic Flowchart
- 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
- "I Checked Everything" — The Actual Cause
- When the Usual Fixes Don't Work
- OEM Part Supersession History
- Model Year Variations Within This Range
- 🎟️ Get 5% Off