P0021 on 2012-2015 Chevrolet Impala 3.6L: Causes and Fixes for Camshaft Timing
On the 2012-2015 Impala with the 3.6L V6, code P0021 is most often caused by a faulty intake camshaft position actuator solenoid on Bank 2, part number 12655420 (superseded by 12679099). Low or dirty engine oil is the second most common cause, as the VVT system is oil-pressure driven. Replacing the solenoid is a straightforward DIY fix costing between $25 and $60, and it is often the first and only part needed.
- P0021 on your Impala means the intake camshaft on the front cylinder bank (Bank 2) is timed incorrectly.
- Before buying any parts, check your engine oil. Low or dirty oil is a very common cause and the easiest fix.
- The most likely failed part is the intake camshaft position actuator solenoid on the front valve cover, a cheap and easy part to replace.
- Swapping the intake and exhaust solenoids on Bank 2 is a no-cost diagnostic step. If the code changes to P0024, you've found the problem.
- If you hear a rattling noise from the engine, be prepared for a more serious issue like a stretched timing chain, which requires professional repair.
What's Unique About the 2012-2015 Chevrolet IMPALA

This code is common on the GM 3.6L LFX V6 engine used in these Impalas and many other GM vehicles. While a stretched timing chain is a known (and serious) issue for this engine family, the more frequent cause for an isolated P0021 code is a much simpler and cheaper failure of the camshaft actuator solenoid. GM issued Technical Service Bulletin PIP5096C, which acknowledges that certain batches of solenoids could cause P0011, P0014, P0021, or P0024 and should be replaced with an updated part rather than swapped for diagnosis. The LFX engine in these Impalas featured an improved 'inverted tooth' timing chain design that is more durable than the one in the predecessor LLT engine, making chain failure less common, though still possible, especially with poor oil maintenance.
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 end of the ninth generation (2012-2013 'Classic') and the start of the tenth generation (2014-2015 'W1'). Both generations used the 3.6L LFX V6 engine, to which this code applies. The code is not applicable to the 2.5L 4-cylinder engine available in the tenth generation, as it does not have a 'Bank 2'.
Symptoms You May Notice
- Check Engine Light is on
- Rough, unstable, or poor idle
- Engine stalling, especially when coming to a stop
- Hesitation or loss of power during acceleration
- Reduced fuel economy
- Hard starting
- Rattling noise from the engine, which could indicate a timing chain issue
- Replacing the camshaft position *sensor* when the camshaft position actuator *solenoid* is the actual faulty component. The solenoid is a much more common failure point for an isolated P0021 code.
- Replacing a single solenoid or sensor when a stretched timing chain is the true root cause. This leads to the code returning quickly. A rattling noise is a key indicator of a chain issue.
- Performing only an oil change when the solenoid is already clogged or has failed electrically. While dirty oil is a root cause, it may not be the complete fix once the part has failed.
Most Likely Causes

- Low or Dirty Engine Oil 🔴 High Probability The camshaft phasing system is hydraulic and relies on clean oil at the correct pressure. The 3.6L LFX engine is known to consume oil, sometimes as much as a quart every 2,000 miles. If the oil level becomes low or the oil is dirty and sludgy from extended change intervals, it can clog the fine mesh screens on the solenoids or starve the phaser system, causing this code.
How to confirm: Check the engine oil level on the dipstick and observe its condition. If the level is low or the oil is dark, gritty, or sludgy, this is the likely cause.
Typical fix: Perform an oil and filter change using a full synthetic 5W-30 oil that meets GM's dexos specification. Clear the code and see if it returns.
Est. part cost: $40-$80 - Faulty Intake Camshaft Position Actuator Solenoid (Bank 2) 🔴 High Probability → Shop Engine Camshaft This is a very common failure point. Debris in the oil can clog the small passages and screens in the solenoid, or the solenoid can fail electrically. TSB PIP5096C specifically identifies a bad batch of solenoids from a supplier that can cause this code without other symptoms. The bulletin advises replacing the solenoid with an updated service part rather than just swapping it with another one on the engine.
How to confirm: Using a capable scan tool, command the solenoid on and off to check for a response. A simpler method is to swap the Bank 2 intake solenoid with the Bank 2 exhaust solenoid. If the code changes to P0024 (Exhaust Camshaft), the solenoid is confirmed bad. However, TSB PIP5096C advises against this swap if a bad batch is suspected. Resistance should be between 6.9 and 7.9 ohms.
Typical fix: Replace the Bank 2 intake camshaft position actuator solenoid. It is located on the front valve cover (radiator side) and is held in by a single bolt. 🎬 Watch: How to identify and locate the Bank 2 solenoids.
Est. part cost: $25-$60 - Stretched Timing Chain 🟡 Medium Probability → Shop Engine Timing Chain The GM 3.6L V6 family has a history of premature timing chain wear, though the LFX in these Impalas is less prone than its predecessor (the LLT) due to an improved chain design. However, severe oil degradation from extended drain intervals or running the engine low on oil can accelerate wear, leading to chain stretch. A stretched chain causes the camshaft timing to be physically out of sync with the crankshaft.
How to confirm: This is a complex diagnosis. It often presents with a rattling noise on startup or at idle. A mechanic will use a scan tool to check camshaft/crankshaft correlation data. Physical inspection requires significant engine disassembly and is the definitive confirmation.
Typical fix: Replace all three timing chains, the tensioners, and the guides. This is a major, labor-intensive repair, often requiring 14+ hours of labor. 🎬 Watch this walkthrough of a complete 3.6L timing chain replacement.
Est. part cost: $300-$600 for a kit - Faulty Camshaft Position Sensor (Bank 2 Intake) ⚪ Low Probability → Shop Engine Camshaft Position Sensor
How to confirm: This is unlikely to be the cause if P0021 is the only code present. Sensor failures typically generate their own specific codes. After ruling out the solenoid, you can test the sensor's output with a multimeter or oscilloscope. Swapping it with an identical sensor from another position can also help diagnose.
Typical fix: Replace the Bank 2 intake camshaft position sensor.
Est. part cost: $20-$50
Rare But Worth Checking
- Failed Camshaft Phaser: → Shop Engine Camshaft The phaser is the gear at the end of the camshaft that the solenoid controls. It can become stuck or clogged internally, requiring replacement. This is a significant repair similar in labor to a timing chain replacement.
- Clogged Oil Passages: Sludge from infrequent oil changes can block the small oil passages leading to the camshaft phaser, preventing the system from working correctly even with a good solenoid.
Diagnosis Steps
- Check the engine oil level and condition. Top off or perform an oil and filter change if it is low or dirty. Use 5W-30 synthetic oil meeting the dexos specification. 🎬 See how proper maintenance prevents these common timing chain issues. This is the most common cause and the cheapest first step.
- Scan for any other DTCs. Codes like P0011, P0014, or P0024 can provide clues.
- Locate the Bank 2 (front) intake camshaft position actuator solenoid. Inspect the wiring and connector for damage or oil contamination.
- Per TSB PIP5096C, if no other drivability issues are present, inspect the engine EUN sticker. If it has an 'A' before the sequence number, replace the solenoid with a new service part and do not swap it with another solenoid on the engine.
- If the TSB does not apply, you can swap the intake solenoid with the exhaust solenoid on the same bank (Bank 2). Clear the codes and drive the vehicle.
- If the code changes to P0024 (Exhaust Camshaft Position System Performance Bank 2), the solenoid you moved is faulty and needs to be replaced.
- If the P0021 code returns, the problem is not the solenoid. The next step is to test the camshaft position sensor, though it is a less likely cause.
- If both the solenoid and sensor are confirmed to be working, the issue is likely mechanical. Listen for a rattling noise from the engine, which would suggest a stretched timing chain or a faulty phaser.
- At this point, a professional diagnosis is recommended to confirm a stretched timing chain or faulty phaser, as this requires specialized tools and extensive labor.
Parts You'll Likely Need
- Intake Camshaft Position Actuator Solenoid
(OEM #12655420, 12679099)— This is the most frequent cause of an isolated P0021 code on this engine. GM part number 12655420 has been superseded by updated part numbers, including 12679099. TSB PIP5096C specifically calls for replacing this part if certain engine build criteria are met.
Trusted brands: ACDelco (Genuine GM), Delphi, Dorman
OEM price range: $40-$60
Aftermarket price range: $25-$45 - Timing Chain Kit — If the timing chain has stretched, it is the root cause of the timing deviation. A complete kit including all three chains, guides, and tensioners is required for a proper repair.
Trusted brands: Cloyes, Melling
OEM price range: $500-$700
Aftermarket price range: $300-$600
Related Codes That Often Appear With This One
- P0011 — This is the equivalent code for Bank 1 intake camshaft. Seeing both together could point to a systemic issue like low/dirty oil, incorrect oil viscosity, or a timing chain problem affecting the entire engine.
- P0014 — This code is for the Bank 1 exhaust camshaft. It is often cited along with P0011, P0021, and P0024 in TSB PIP5096C as a related group of codes caused by faulty solenoids.
- P0024 — This code is for the Bank 2 exhaust camshaft. If you swap a suspected bad intake solenoid (P0021) with the exhaust solenoid and this code appears, you have confirmed the solenoid is faulty.
Technical Service Bulletins (TSBs) & Recalls
- PIP5096C: Addresses DTCs P0011, P0014, P0021, or P0024 with no drivability concerns, pointing to a potential faulty camshaft actuator solenoid.
Platform-Specific Known Issues
- Technical Service Bulletin PIP5096C was issued for a range of GM vehicles with the 3.6L LFX engine, including the 2012-2015 Impala, for codes P0011, P0014, P0021, and P0024. It advises that if no other drivability concerns are present, technicians should check the engine's EUN sticker. If an 'A' is present before the sequence number, the solenoid should be replaced with a new part from a different supplier, and technicians are specifically instructed 'DO NOT JUST SWAP FROM ANOTHER LOCATION.'
Mechanic-Grade Diagnostic Values
- Camshaft Position Actuator Solenoid Resistance — expected: 6.9 to 7.9 ohms at 68°F (20°C).. Failure: A reading of no resistance (open circuit) or significantly outside the specified range indicates a faulty solenoid.
- Engine Oil Pressure (LFX Engine) — expected: Normal warm idle pressure can be as low as 20-25 psi. Pressure can rise to 60 psi or higher under load or during a cold start.. Failure: Consistently low oil pressure (e.g., below 20 psi at warm idle) can starve the VVT system and cause timing codes.
- Scan Tool Camshaft Position Data — expected: The 'Desired' and 'Actual' camshaft position values for Bank 2 Intake should closely match at idle and during acceleration.. Failure: A significant and persistent deviation between the desired and actual angle, or a slow response from the actual angle when the desired angle changes, points to a problem in the VVT system (solenoid, phaser, or oil pressure).
Scan Tool Commands That Help
- GDS2 / Tech2 (or capable aftermarket scanner): Camshaft Position Actuator Solenoid Control — This bidirectional test allows the technician to command the solenoid on and off to verify its mechanical and electrical operation. A clicking sound should be heard from the solenoid, and changes in engine performance or scan tool data should be observed. This helps isolate a faulty solenoid without removing it.
Wiring & Ground Locations
- ECM/Sensor Ground — The LFX engine typically has several ground points. One critical ground strap runs from the engine block or cylinder head to the frame. There are also specific ground wires within the engine harness that ground the ECM and its sensors, often terminating on a bolt on the engine block or transmission case.. A poor ground connection for the ECM, camshaft position sensor, or actuator solenoid can cause erratic signals or insufficient voltage, leading to false timing codes. The ECM relies on a stable ground reference to accurately interpret sensor inputs and control the actuators.
- Camshaft Position Sensor Connector — The 3-wire connector plugs directly into the camshaft position sensor.. The connector provides the sensor with a reference voltage (typically 5V), a ground, and a path for the signal wire back to the ECM. Oil contamination, corrosion, or a loose connection at this point can disrupt the signal and trigger timing-related codes.
Real Owner Repair Stories
- MyG37 Forum User (2009 Infiniti G37 (Note: Different vehicle, but VQ engine has a similar VVT system and failure pattern)) — P0021 code and significant engine shaking.
❌ Tried (didn't work) An initial oil change did not resolve the issue immediately.
✅ What actually fixed it The user removed, cleaned, and swapped the intake and exhaust VVT solenoids. After this procedure, the code did not return, suggesting the issue was a temporarily stuck or dirty solenoid rather than a complete failure or a more serious gasket issue.
OEM Part Supersession History
12655420→12679099— This is a common GM part update. The new part number often represents a revision for improved reliability, durability, or a change in supplier.
Heads up: The new part 12679099 is a direct replacement for 12655420 and several other older numbers like 12578517, 12628347, and 12646783. There are no known incompatibilities; it is the correct service part.
Model Year Variations Within This Range
- 2013-2015: The timing chain design in the LFX engine was reportedly improved after the 2012 model year, making the 2013 and newer models less susceptible to the premature chain stretching that affected earlier 3.6L engines. While still possible, timing chain failure is a less probable cause on a 2013-2015 Impala compared to a 2012 model or the older LLT engine.
- 2012-2013 vs 2014-2015: While the LFX engine block and rotating assembly are largely the same, the 2012-2013 Impala (9th Gen 'Classic') and the 2014-2015 Impala (10th Gen 'W1') have different chassis, wiring harnesses, and potentially different ECM software tunes due to intake and exhaust differences. However, the core causes and parts for code P0021 (solenoid, sensors, chain) remain the same.
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.
- Chevrolet IMPALA:
- 🧭 Diagnostic Flowchart
- 🎬 Helpful Videos
- 🛍️ Shop This Part
- What's Unique About the 2012-2015 Chevrolet IMPALA
- 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
- 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