P0016 on a BMW: Causes, Fixes & Repair Cost
๐ Moderate severity ยท drivable
You can often drive a BMW short distances with P0016, but if it idles rough, stalls, or won't start, stop driving โ a jumped timing chain can cause major engine damage.
What P0016 means on a BMW
On a BMW, P0016 means the crankshaft and camshaft position sensors on bank 1 are reporting positions that don't line up. BMW's VANOS variable valve timing depends on the two shafts staying in sync, so this code usually points to a stretched timing chain or a VANOS problem. A jumped chain can bend valves and ruin the engine, so it deserves a quick diagnosis.
Is P0016 common on BMWs?
P0016 shows up on chain-driven BMWs like the 3 Series, 5 Series, and X3, especially at higher mileage. Timing chain guides and VANOS solenoids are common wear points, and skipped oil changes speed up chain stretch and sludge buildup.
Commonly reported on: 3 Series, 5 Series, X3, X5.
Symptoms
- Check engine light on
- Rough idle or stalling
- Hard starting in some cases
- Loss of power or poor fuel economy
Common causes
- most common: Stretched or jumped timing chain
- common: Worn timing chain guide or tensioner
- common: Faulty VANOS solenoid or camshaft adjuster
- less common: Faulty camshaft position sensor
- less common: Low oil pressure affecting the VANOS system
How to fix it
| Fix | DIY? | Typical cost |
|---|---|---|
| Have the camshaft and crankshaft correlation checked with a scan tool | Mechanic | $100โ250 |
| Replace the timing chain kit if it is stretched | Mechanic | $1500โ3500 |
| Replace a faulty VANOS solenoid | Yes | $150โ400 |
| Replace a faulty camshaft position sensor | Yes | $100โ250 |
Frequently asked questions
Other common BMW codes
P0016 on other brands
Looking for the full (non-brand-specific) guide? See the P0016 code page โ
Browse all BMW codes: BMW hub โ
Updated 2026-08. This page is informational and not a substitute for professional diagnosis.