Home › Fault codes

BMW fault codes

What the most-searched BMW engine fault codes mean, whether you can keep driving, and what usually causes them, with BMW's own bulletins and repair prices. 62 codes on 19 pages.

Last updated

P-codes and BMW codes

  • P-codes (P0171, P0456…) are the generic OBD-II codes every car uses. Any code reader shows them.
  • BMW codes (2A82, 120308, 801C20…) are BMW's own fault codes, read with a BMW-capable scanner. They are more specific, and BMW's bulletins are written around them.
  • One fault often shows as a P-code on a basic reader and as a BMW code on a BMW tool, so each page lists both where we could confirm them.

Looking for paint or option codes? They are under paint and option codes.

Pages

PageWhat it covers
P0171 / P0174 (lean)The engine computer is adding more fuel than it expects to, usually because unmetered air is getting in. Most often a vacuum or crankcase ventilation leak on a BMW.
P0011 / P0012 / P0014 / P0015 (cam timing)The variable cam timing (VANOS) isn't moving a camshaft to where the engine computer asked. On BMWs that usually means oil supply, a VANOS solenoid or, less often, the VANOS gears or timing.
2A82 / 2A87 (VANOS)BMW's own codes for VANOS (variable cam timing) that is slow or stuck. Common on N51, N52, N54 and N55 sixes. Oil supply and the solenoids come first.
2A9A / 2A9B (cam sensor)The engine computer can't line up the camshaft signal with the crankshaft. On N52 sixes BMW traced many cases to a sticking VANOS solenoid, not the sensor.
P0456 (EVAP small leak)The fuel vapour system failed its own leak test by a small margin. It doesn't affect how the car drives. On BMWs, check the fuel cap, then the leak detection module.
2A15 / 2A17 / 2A19 (EVAP, older BMWs)Codes from the fuel vapour system on E-series BMWs. 2A15 is a small leak; 2A17 is the leak-test pump itself; 2A19 is the purge valve circuit.
P0300–P0306 (misfire)One or more cylinders aren't firing properly. On BMWs: ignition coils and spark plugs first, then injectors (N54 and N63 especially).
P0299 / 120308 (underboost)The turbo isn't making the boost the engine computer asked for, so it cuts power (failsafe). Usually a leak in the intake or a boost control problem, not the turbo itself.
P0087 / 29F2 / 29DC (N54 fuel pressure)Fuel pressure is below what the engine asked for. On the N54 twin-turbo six, the high-pressure fuel pump (HPFP) is the classic cause, and BMW extended its warranty.
2AAF (N54 fuel pump plausibility)On its own, BMW says 2AAF on the N54 is a sensitive diagnosis, not a failed fuel pump. Only investigate if it comes with other low-pressure faults.
P1290 / 123401 (wastegate)The engine computer couldn't learn the end positions of the electric wastegate actuator on a cold start. Check the linkage and actuator; on some B-series engines BMW traced it to wiring interference.
P112F / 101F01 (throttle vs manifold pressure)The intake manifold pressure doesn't match what the throttle position says it should be. On the N55, BMW has a bulletin; vacuum leaks and the throttle body are the usual suspects.
P0128 / 1D2008 (thermostat open)The engine takes too long to warm up, usually because the thermostat is stuck open. BMW has bulletins for both real failures and false codes.
P0597 (thermostat heater circuit)An electrical fault in the heating element that lets the engine computer open the thermostat early. Wiring or the thermostat itself.
P0420 (catalyst efficiency)The rear oxygen sensor shows the catalytic converter isn't cleaning the exhaust enough. Check for upstream causes before replacing the converter.
2A3F (Valvetronic power)The Valvetronic motor, which controls engine breathing instead of a throttle, has lost its power supply. Expect limp mode. Check the relay, fuse and motor.
2AA9 (DISA intake valve)A fault with the smaller of the two intake-manifold flaps (DISA valves) on N52 sixes. Not a VANOS fault, despite what some forums say.
801C20 (central fault memory full)Not a broken part. The central gateway's fault log is full and can't store new entries. Fix whatever is filling it, then clear it with a BMW-capable tool.
1C4002 (oil level too low)The electronic oil level sensor reads low. Check the oil before anything else; on some N63TU cars a cluster software error hid the warning.

Every code on this site

Page
101F01Throttle valve opening angle / absolute pressure intake pipe comparison: pressure too high (F-series)P112F / 101F01 (throttle vs manifold pressure)
118001Mixture control: fuel-air mixture too lean (F-series)P0171 / P0174 (lean)
118101Mixture control 2: fuel-air mixture too leanP0171 / P0174 (lean)
120208Charging pressure control plausibility: pressure too highP0299 / 120308 (underboost)
120308Boost pressure control, plausibility: pressure too low (F-series)P0299 / 120308 (underboost)
120408Charging pressure control: switching offP0299 / 120308 (underboost)
121001Catalytic converter: efficiency too low (i3 REx)P0420 (catalyst efficiency)
123401Electrical wastegate valve, adaptation: cold start not learnedP1290 / 123401 (wastegate)
123411 / 123412Electrical wastegate valve, limit position teach-in: end stop (wastegate open) not foundP1290 / 123401 (wastegate)
123437Electrical wastegate valve: jammed closedP1290 / 123401 (wastegate)
190302Fuel tank ventilation and purge air system, micro leak: leakage greater than 0.5 mmP0456 (EVAP small leak)
194006Tank leakage detection module, solenoid valve: jammed openP0456 (EVAP small leak)
1C4002Engine oil level: too low1C4002 (oil level too low)
1D2008Map thermostat (mechanical): jammed openP0128 / 1D2008 (thermostat open)
1D2009Characteristic map thermostat: clamped closedP0128 / 1D2008 (thermostat open)
1D2401Characteristic map thermostat, actuation: short circuit to B+P0597 (thermostat heater circuit)
1D2402Characteristic map thermostat, actuation: short circuit to groundP0597 (thermostat heater circuit)
1D2404Characteristic map thermostat, actuation: line disconnectionP0597 (thermostat heater circuit)
2882DME: mixture control bank 1P0171 / P0174 (lean)
2883DME: mixture control bank 2P0171 / P0174 (lean)
28A0Same check, older DME softwareP112F / 101F01 (throttle vs manifold pressure)
29CCMisfirings, several cylinders (E-series sixes)P0300–P0306 (misfire)
29CD–29D2Misfirings, cylinder 1–6P0300–P0306 (misfire)
29DCCylinder injection cut-out: pressure too low in high-pressure systemP0087 / 29F2 / 29DC (N54 fuel pressure)
29E0DME: fuel mixture control (BMW E-series)P0171 / P0174 (lean)
29E1DME: fuel mixture control 2P0171 / P0174 (lean)
29F2Fuel high pressure: fuel pressure undershotP0087 / 29F2 / 29DC (N54 fuel pressure)
2A15Fuel tank ventilation and scavenging air system: fine leak2A15 / 2A17 / 2A19 (EVAP, older BMWs)
2A17DMTL (tank leak diagnosis module): system failure2A15 / 2A17 / 2A19 (EVAP, older BMWs)
2A19Tank venting valve: output stage2A15 / 2A17 / 2A19 (EVAP, older BMWs)
2A3FValvetronic, actuator: power supply2A3F (Valvetronic power)
2A77Controller, internal error: Valvetronic output stage2A3F (Valvetronic power)
2A7AVANOS, exhaust, cold start2A82 / 2A87 (VANOS)
2A7CVANOS, inlet, cold start2A82 / 2A87 (VANOS)
2A82VANOS intake: stiff, jammed mechanically (also "variable cam control test")2A82 / 2A87 (VANOS)
2A87VANOS exhaust: stiff, jammed mechanically2A82 / 2A87 (VANOS)
2A98Crankshaft–inlet camshaft correlation: value outside reference range2A9A / 2A9B (cam sensor)
2A99Crankshaft–exhaust camshaft correlation: value outside reference range2A9A / 2A9B (cam sensor)
2A9ACam sensor, inlet signal: signal invalid for synchronization2A9A / 2A9B (cam sensor)
2A9BCam sensor, exhaust signal: signal invalid for synchronization2A9A / 2A9B (cam sensor)
2AA9Variable intake system: servo motor 2 activation2AA9 (DISA intake valve)
2AAFFuel pump plausibility: integral component outside valid range2AAF (N54 fuel pump plausibility)
2B16–2B1D, 2B22Engine misfires, individual cylinders / several cylinders (N63 V8, E71 X6)P0300–P0306 (misfire)
2C57Boost pressure control, plausibility: pressure too low (E-series)P0299 / 120308 (underboost)
2FBFFuel high pressure: plausibility (stored alone with the light on)P0087 / 29F2 / 29DC (N54 fuel pressure)
801C20Central gateway module (ZGM): central fault memory full801C20 (central fault memory full)
P0011"A" (intake) camshaft position: timing over-advanced or system performance (bank 1)P0011 / P0012 / P0014 / P0015 (cam timing)
P0012"A" (intake) camshaft position: timing over-retarded (bank 1)P0011 / P0012 / P0014 / P0015 (cam timing)
P0014"B" (exhaust) camshaft position: timing over-advanced or system performance (bank 1)P0011 / P0012 / P0014 / P0015 (cam timing)
P0015"B" (exhaust) camshaft position: timing over-retarded (bank 1)P0011 / P0012 / P0014 / P0015 (cam timing)
P0087Fuel rail/system pressure too lowP0087 / 29F2 / 29DC (N54 fuel pressure)
P0128Coolant thermostat (coolant temperature below thermostat regulating temperature)P0128 / 1D2008 (thermostat open)
P0171System too lean (bank 1)P0171 / P0174 (lean)
P0174System too lean (bank 2)P0171 / P0174 (lean)
P0299Turbocharger/supercharger "A" underboost conditionP0299 / 120308 (underboost)
P0300Random/multiple cylinder misfire detectedP0300–P0306 (misfire)
P0301–P0306Cylinder 1–6 misfire detectedP0300–P0306 (misfire)
P0420Catalyst system efficiency below threshold (bank 1)P0420 (catalyst efficiency)
P0456Evaporative emission system: small leak detectedP0456 (EVAP small leak)
P0597Thermostat heater control circuit openP0597 (thermostat heater circuit)
P112FManifold absolute pressure to throttle angle: too high (bank 1), = BMW 101F01P112F / 101F01 (throttle vs manifold pressure)
P1290Cold start turbocharger wastegate stop not learned (as reported on N20 cars)P1290 / 123401 (wastegate)

Tap a column header to sort.

A warning message on the dash? See BMW warning lights explained.

Want a heads-up when prices or bulletins change for your BMW?

About one short email a week, with BMW news. Unsubscribe anytime.