OBD-II trouble code
P0391: Camshaft Position Sensor 'B' Circuit Range/Performance (Bank 2)
The Bank 2 exhaust camshaft signal is present but out of position relative to the crankshaft. The fact that it is Bank 2 only is the most useful clue you have — it rules out the primary chain drive.
Quick facts
- System
- Powertrain
- Category
- Camshaft / Timing
- Severity
- Medium severity
- Drivable
- Usually safe to drive short-term
- Repair cost range
- $100 – $3,200
- DIY difficulty
- Advanced DIY
What does P0391 mean?
P0391 is a correlation fault, not a wiring fault. The signal from the Bank 2 exhaust camshaft sensor is arriving, it is readable, and the engine control module simply disagrees with what it says. Measured against crankshaft position, that camshaft is not where the calibration expects it to be for the current commanded phaser angle.
The single most valuable diagnostic fact about this code is that it named a bank. On a V engine, ask what the two banks share and what they do not. They share the crankshaft, the primary chain or belt off the crank sprocket, the oil pump and the oil supply gallery. They do not share their secondary chains, their individual chain tensioners and guides, their cam phasers, or the oil control valves that feed those phasers. A timing fault in anything shared shows up on both banks and sets Bank 1 codes alongside the Bank 2 ones. A fault that is genuinely confined to Bank 2 therefore points away from the primary drive and toward the parts that belong to that bank alone.
That reasoning is what makes P0391 cheaper to diagnose than it looks. Scan the whole module for stored and pending codes before touching anything. If Bank 1 is completely silent, the primary chain, the crank sprocket and the oil pump are all effectively exonerated in one step, and the search narrows to the Bank 2 secondary chain and tensioner, the Bank 2 exhaust phaser, that phaser's oil control valve and screen, or a reluctor that has shifted on the Bank 2 exhaust camshaft.
One bank-specific mechanical detail is worth spelling out. Engines that use a separate chain per bank give each bank its own hydraulic tensioner, and those tensioners bleed down independently. A tensioner on one bank that loses its check-valve seal overnight lets that bank's chain go slack on cold start while the other bank stays tight — which is exactly how a single-bank correlation code with a brief cold-start rattle and no matching code on the other side comes about.
The cost consequence is where owners get caught out. The part that fixes P0391 may be small, but on a transverse V6 it sits on the firewall side of the engine bay. Some platforms require rolling the engine forward on its mounts or dropping the subframe to reach a Bank 2 timing cover at all. Ask for the labour estimate before authorising the diagnosis, because on those cars labour, not parts, is the entire quote.
Common causes
- Stretched or slack Bank 2 secondary timing chain
- Bank 2 chain tensioner bleeding down or its guide worn through
- Worn Bank 2 exhaust camshaft phaser drifting from its commanded position
- Oil control valve for the Bank 2 exhaust phaser sticking or its screen blocked
- Reluctor ring loose or repositioned on the Bank 2 exhaust camshaft
- Bank 2 camshaft timing set one tooth out after previous engine work
- Degraded or incorrect-viscosity engine oil limiting phaser response
- Sensor reporting a skewed angle because it was fitted with a spacer or shim missing
Symptoms
- Check engine light on with P0391 stored
- Brief chain rattle on cold start, heard from one side of the engine only
- Reduced midrange torque and a flat feel under load
- Rough or slightly uneven idle
- Fuel economy that has drifted down gradually rather than dropping suddenly
- Emissions failure, since exhaust cam phasing is how many engines perform internal EGR
- Often paired with a Bank 2 exhaust cam timing over-advanced or over-retarded code
Diagnostic steps
- 1.Scan for all stored and pending codes across the module before anything else. Whether Bank 1 is silent or not decides the entire direction of the job.
- 2.If Bank 1 carries a matching correlation code, redirect to the shared items — primary chain, crank sprocket, oil pressure and oil condition — and treat P0391 as a symptom rather than the target.
- 3.If Bank 2 is alone, check engine oil level and condition, then inspect the Bank 2 exhaust phaser oil control valve and its filter screen. This is the cheapest item on the Bank 2 side.
- 4.With a scan tool, command the Bank 2 exhaust phaser through its range and compare commanded against actual position. A phaser that lags or never arrives points at the hydraulic side.
- 5.Cold start the engine and listen specifically over the Bank 2 valve cover for the first two seconds. A one-sided rattle implicates that bank's tensioner.
- 6.Compare Bank 1 and Bank 2 actual cam angles side by side in live data at the same engine speed. A consistent offset on one bank quantifies how far out it is.
- 7.Remove the sensor and check the reluctor for looseness or a damaged tooth before committing to a timing cover job.
- 8.Get a written labour estimate for Bank 2 timing access on this specific platform before authorising teardown.
Repair cost
$100 – $3,200
An oil service plus a cleaned or replaced oil control valve resolves a meaningful share of these for $100 to $450. A Bank 2 exhaust cam phaser is commonly $450 to $1,400 installed. A Bank 2 secondary chain, guides and tensioner job ranges from about $900 on an accessible longitudinal V8 to $3,200 on a transverse V6 requiring engine roll-forward or subframe work — the spread is labour, not parts.
Estimate your repair
Run the numbers for your vehicle
Open the Repair Cost Estimator with timing chain replacement preselected. Adjust labor rate and vehicle category to fit your situation.
DIY vs shop
This is an advanced DIY job. It typically requires specialty tools, scan-tool access, lifting equipment, or careful sequencing to avoid causing new failures. Plan for extended downtime and have a backup vehicle. Most owners are better served by a shop that has done this repair before.