P0012 on 2015-2021 Ford Expedition: 'A' Camshaft Position Timing Over-Retarded (Bank 1) Causes and Fixes
On a 2015-2021 Ford Expedition with the 3.5L EcoBoost, P0012 is most often caused by a faulty Variable Camshaft Timing (VCT) solenoid or low/dirty engine oil. Ford TSBs confirm debris can cause solenoids to stick. [SSM 47170, SSM 48423] Replacing a VCT solenoid costs about $60-$90 for the part and is a manageable DIY job for many. A more severe cause is a stretched timing chain, often indicated by a cold start rattle.
- P0012 on a 2015-2021 Expedition means the intake camshaft on the passenger side (Bank 1) is too retarded.
- Always start by checking your engine oil. Low, old, or dirty oil is a very common cause.
- The most likely part to fail is the VCT solenoid for the Bank 1 intake camshaft, which is a relatively inexpensive and accessible part to replace.
- A rattling noise on a cold start is a major red flag for a stretched timing chain, a much more serious and expensive repair.
- Do not replace the camshaft position sensor; it is almost never the cause of this code.
What's Unique About the 2015-2021 Ford EXPEDITION

The 3.5L EcoBoost engine in the Expedition relies heavily on its dual overhead camshafts and variable timing (VCT) to produce power and efficiency. This system is hydraulically operated and extremely sensitive to oil pressure and cleanliness. Ford has issued multiple Technical Service Bulletins (TSBs) acknowledging that debris can cause the VCT solenoids to stick, leading to this code. [SSM 47170, SSM 48423] 🎬 Watch: How debris causes VCT solenoid failure in the EcoBoost The TSBs suggest using a diagnostic tool to cycle the solenoid 10 times (Pinpoint Test HK11) to clear debris before replacement. Additionally, these engines, particularly the first generation (pre-2017), are known for timing chain stretch, which can be a more severe cause of this code, often accompanied by a cold start rattle and code P0016. [ODI 11557822, 13]
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 third generation (2015-2017) and the fourth generation (2018-2021) of the Ford Expedition. Both generations use a version of the 3.5L EcoBoost V6 engine and share the same fundamental VCT system design. The Gen 1 engine (in 2015-2017 models) is more commonly associated with timing chain stretch issues. The Gen 2 engine (2018+) has an updated timing chain and phaser design, but is still susceptible to VCT solenoid failures.
Symptoms You May Notice
- Check Engine Light is on
- Rough or unstable idle
- Engine stalling, especially at low speeds or when stopping
- Reduced engine power and poor acceleration
- Decreased fuel economy
- Hard starting
- Rattling noise from the engine, particularly on a cold start, which strongly indicates a timing chain or cam phaser issue.
- Replacing the camshaft position sensor. While related, the sensor's job is to report the camshaft's position. It is rarely the cause of a timing-retarded code; it is simply doing its job by reporting the mechanical or hydraulic fault.
Most Likely Causes

- Low, Dirty, or Incorrect Viscosity Engine Oil 🔴 High Probability The VCT system is entirely dependent on hydraulic pressure to function. The EcoBoost engines run hot and can be hard on oil, and infrequent changes lead to sludge and debris that can clog the fine mesh screens on the VCT solenoids.
How to confirm: Check the oil level on the dipstick and inspect its color and consistency. If the oil is low, excessively dark, or past its service interval, it should be changed immediately.
Typical fix: Perform an oil and filter change using the manufacturer-specified full synthetic oil (typically 5W-30) and a high-quality filter like the Motorcraft FL-500S.
Est. part cost: $50-$100 - Failing Variable Camshaft Timing (VCT) Solenoid 🔴 High Probability Ford TSBs SSM 47170 and SSM 48423 specifically state that small debris can cause the VCT solenoid to stick, leading to this code. It is a very common failure point on this platform and its platform mates like the F-150.
How to confirm: A mechanic can use a scan tool to perform 'Pinpoint Test HK11' which cycles the solenoid to see if it responds. A common DIY method is to swap the Bank 1 intake solenoid with the Bank 2 intake solenoid and see if the code follows (e.g., changes to P0022).
Typical fix: Replace the Bank 1 intake VCT solenoid. There are four solenoids in total (intake and exhaust for each bank), and it is often recommended to replace them as a set.
Est. part cost: $40-$90 per solenoid - Stretched Timing Chain or Failed Tensioner/Guides 🟡 Medium Probability The 3.5L EcoBoost engine, particularly the Gen 1 version (up to 2016/2017), is notorious for premature timing chain stretch. An owner of a 2020 Expedition reported this exact issue with codes P0011, P0012, and P0016, confirming it can still happen on newer models. [ODI 11557822]
How to confirm: A key symptom is a distinct rattling noise from the front of the engine on cold startups that lasts for 2-5 seconds. This is often described as 'marbles in a can'. A mechanic must remove the timing cover to physically inspect the chain for slack against the guides.
Typical fix: Replace the timing chain, cam phasers, guides, and tensioners. This is a labor-intensive and expensive repair, often costing over $3,000.
Est. part cost: $400-$800 for a full OEM kit - Failed Camshaft Phaser ⚪ Low Probability The phaser is the gear on the end of the camshaft that actually adjusts the timing. Its internal locking pins can fail, causing a loud rattle on startup. This failure is often linked to the same oiling issues that affect the solenoids.
How to confirm: This is difficult to confirm without ruling out the solenoid and oil first. A scan tool may show the phaser is not responding to commands. It is typically diagnosed by the cold start rattle and replaced during a timing chain job.
Typical fix: Replace all four camshaft phasers. This is almost always done at the same time as a timing chain replacement. Ford has released updated part numbers for the phasers (e.g., ML3Z-6256-A).
Est. part cost: $150-$300 per phaser
Rare But Worth Checking
- Damaged Wiring to VCT Solenoid: The wiring harness or connector for the VCT solenoid can become damaged or corroded, causing an open or short circuit. Always inspect the wiring before replacing parts.
- Clogged Oil Passages: In cases of severe engine sludge from neglected oil changes, the small oil passages leading to the VCT solenoids and phasers can become blocked, starving them of oil pressure. This often requires significant engine cleaning or disassembly.
Diagnosis Steps

- Check Engine Oil: Verify the oil level is correct and the oil is clean and of the proper viscosity (5W-30 full synthetic). If in doubt, perform an oil and filter change. Clear the code and see if it returns.
- Scan for Other Codes: Use an OBD-II scanner to check for any other related codes that could provide more clues (e.g., P0016 strongly suggests a timing chain issue).
- Listen for Engine Noises: On a cold start, listen carefully for a 2-5 second rattle from the front of the engine. If present, a timing chain/phaser issue is highly likely.
- Inspect VCT Solenoid Wiring: Visually inspect the wiring harness and connector for the Bank 1 intake VCT solenoid (passenger side, front of the valve cover) for any signs of damage or corrosion.
- Test the VCT Solenoid: The easiest DIY test is to swap the Bank 1 intake solenoid with the Bank 2 intake solenoid. Clear the codes and drive the vehicle. If the code changes to P0022 (the same issue on Bank 2), the solenoid is faulty and needs to be replaced.
- Professional Diagnosis: If the above steps do not resolve the issue, a professional diagnosis is needed. A technician can use a scan tool to command the VCT solenoids and monitor cam angle response (Pinpoint Test HK). If the solenoid tests good but the code persists, the problem is likely more severe (timing chain, phasers, or oil passage blockage) and requires removing the valve and timing covers for inspection.
Parts You'll Likely Need
- Variable Camshaft Timing (VCT) Solenoid
(OEM #AT4Z-6M280-B (2015-17), HL3Z-6M280-A (2018+))— This is the most common cause of P0012, as identified in Ford's own service bulletins due to sticking from debris. [SSM 47170] The part number differs by generation; AT4Z-6M280-B is common for 2015-2017 models, while HL3Z-6M280-A is often used for 2018+ models, especially during a full timing job.
Trusted brands: Motorcraft, Dorman
OEM price range: $55-$85
Aftermarket price range: $30-$60 - Engine Oil and Filter
(OEM #Motorcraft FL-500S (Filter))— The VCT system is dependent on clean oil at the proper pressure to function correctly.
Related Codes That Often Appear With This One
- P0011 — 'A' Camshaft Position Timing - Over-Advanced (Bank 1). This code relates to the same camshaft but indicates the opposite problem. Seeing both can point to an erratic VCT solenoid or oil pressure issue.
- P0016 — Crankshaft Position - Camshaft Position Correlation (Bank 1 Sensor A). This code is a strong indicator of a stretched timing chain, as the computer detects a mismatch between the crank and cam sensors' readings. [ODI 11557822]
- P0021 / P0022 — These are the equivalent over-advanced and over-retarded codes for Bank 2 (driver's side). If you have have codes for both banks (e.g., P0012 and P0022), it strongly suggests a systemic problem like low/dirty oil or a failing oil pump.
Technical Service Bulletins (TSBs) & Recalls
- SSM 54366: General diagnostic procedure for multiple VCT codes, including P0012, on 2015-2021 Ford vehicles.
- SSM 47170: Notes that P0012 and other codes may be due to debris causing the VCT solenoid to stick on 2017 models.
- SSM 48423: Expands on the previous TSB, covering 2015-2020 models with VCT solenoids sticking due to debris.
Platform-Specific Known Issues

- TSB SSM 47170 & SSM 48423: Ford noted that on some 2015-2020 models, DTCs including P0012 may be caused by small debris causing the VCT solenoid to stick.
- TSB SSM 54366: This bulletin for 2015-2021 models lists P0012 among a dozen other VCT-related codes and refers technicians to a specific pinpoint diagnostic test, indicating a known complex issue.
- Timing Chain Stretch: The 3.5L EcoBoost engine has a known issue with premature timing chain stretch, which can cause correlation codes and timing-related faults like P0012. [ODI 11557822, 12]
Mechanic-Grade Diagnostic Values
- VCT Solenoid Resistance — expected: 5.0 to 15.0 Ohms. Failure: A reading outside this range, or infinite resistance (open circuit), indicates a failed solenoid coil.
- Scan Tool PID: VCT_ADV_ERR1 (VCT Advance Error Bank 1) — expected: Should be close to 0° at idle in closed loop.. Failure: A consistent negative value (e.g., -5° to -15°) while the code is active indicates the camshaft is not advancing as commanded and is stuck in a retarded position.
- VCT Solenoid Connector Voltage — expected: One pin should have 12V (battery voltage) with the key on, engine off.. Failure: No voltage suggests a problem with the power supply (VPWR circuit) or a blown fuse.
Hidden / Shadow Codes Worth Checking
- Mode $06, Test ID $81: This test monitor relates to VCT system performance. A failure in this monitor can indicate an emerging problem with the VCT system, sometimes before a persistent DTC like P0012 is logged. (see via A professional scan tool with Mode $06 capabilities, such as the Ford IDS.)
Scan Tool Commands That Help
- Ford IDS (Integrated Diagnostic System): Output State Control / VCT System Test — This bidirectional control allows a technician to directly command the VCT solenoid on and off to verify its mechanical operation. Watching the cam angle PIDs respond (or fail to respond) during this test can definitively prove if the solenoid is stuck or if the issue lies elsewhere (e.g., oil pressure, phaser).
- Ford IDS (or equivalent): Pinpoint Test HK11 / HK12 — As mentioned in Ford TSBs, this function cycles the VCT solenoid 10 times in an attempt to dislodge small debris that may be causing it to stick. This should be performed before condemning the solenoid, as it can sometimes resolve the fault without part replacement.
Wiring & Ground Locations
- G104 — On the rear of the right cylinder head (Bank 1).. This is a primary engine ground point. A loose or corroded G104 can cause erratic voltage and signal readings for various engine sensors, including the Camshaft Position (CMP) sensor, potentially leading to incorrect data being sent to the PCM and contributing to timing-related diagnostic codes.
- VCT Solenoid Connector (C145 for Bank 1 Intake) — On the front of the passenger-side valve cover.. This is the direct connection point for the solenoid. The two pins are for power (VPWR) and the control signal from the PCM. The harness here is subject to heat and vibration and should be inspected for chafing, brittleness, or broken wires, which would mimic a failed solenoid.
Real Owner Repair Stories
- f150forum.com user report (2018 Ford F-150 3.5L EcoBoost) — Check engine light with codes P0012, cold start rattle.
❌ Tried (didn't work) Replacing all four VCT solenoids., Multiple oil changes.
✅ What actually fixed it A complete timing job, including replacing the primary and secondary timing chains, all four cam phasers, tensioners, and guides. The original chain was found to be stretched, causing the correlation issue that the VCT system could not compensate for. - YouTube mechanic channel (Truck Lab) (2019 Ford F-150 3.5L EcoBoost) — Check engine light (P0018, P0021), occasional power loss, and a cold start rattle.
❌ Tried (didn't work) Initial diagnosis pointed towards cam phasers due to the rattle.
✅ What actually fixed it Upon inspection, a VCT solenoid had internally failed, with a small piece of an internal control ring breaking off and jamming the spool valve. Replacing all four VCT solenoids resolved all symptoms, including the cold start rattle that was initially blamed on the phasers.
OEM Part Supersession History
AT4Z-6M280-B (and similar variants)→HL3Z-6M280-A / HL3Z-6M280-B— The Gen 2 3.5L EcoBoost (2017+ F-150, 2018+ Expedition) introduced a redesigned VCT system, including new phasers and solenoids, to improve reliability and address timing chain/phaser rattle issues prevalent in Gen 1. The HL3Z- series parts are part of this updated system.
Heads up: While they may physically fit, it is critical to use the correct generation of solenoid for the vehicle's engine. Using a Gen 1 solenoid in a Gen 2 engine (or vice-versa) may result in improper VCT operation due to different internal flow characteristics designed to match the corresponding phasers.
Model Year Variations Within This Range
- 2015-2017 (Gen 1 3.5L EcoBoost): These models are significantly more prone to timing chain stretch and the associated cold-start rattle. The VCT system uses part number series like AT4Z-6M280-B. Diagnosis on these models should weigh timing chain failure as a higher probability if a rattle is present.
- 2018-2021 (Gen 2 3.5L EcoBoost): Features a redesigned timing system with a more robust chain and updated cam phasers to reduce stretch and rattle issues. It also adds a port fuel injection system alongside direct injection to reduce intake valve carbon buildup. The VCT solenoids were updated to part number series HL3Z-6M280-A. While solenoid failure is still common, catastrophic chain failure is less so than in Gen 1.
Helpful Videos
Used OEM Parts in Stock
New Aftermarket Parts Available
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.
- Ford EXPEDITION:
- 🎬 Helpful Videos
- 🛍️ Shop This Part
- What's Unique About the 2015-2021 Ford EXPEDITION
- 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
- OEM Part Supersession History
- Model Year Variations Within This Range
- 🎟️ Get 5% Off