Most Common BMW Check Engine Codes (N20, N55, and B58 Engines)

reference 8 min read Updated 2026-04-10

Why BMW Check Engine Codes Can Be Expensive

BMWs are engineered with tight tolerances and complex engine management systems that detect problems quickly and set codes aggressively. The check engine light on a BMW can mean anything from a loose gas cap to a serious engine issue, but the cost floor for BMW repairs is higher than most other brands due to parts pricing and labor rates. The N20, N55, and B58 turbocharged engines found across the 3 Series, 5 Series, X3, and X5 are powerful and efficient but have well-documented weak points. An independent BMW specialist typically charges 40-60% less than the dealer for the same repair, and many common BMW parts are available from OEM suppliers at significant savings.

P0171 and P0174 -- System Too Lean (Bank 1 and Bank 2)

P0171 and P0174 appearing together on a BMW almost always indicate a vacuum leak. On the N20 four-cylinder turbo (2012-2016 328i, 2013-2017 X3), the charge pipe that connects the turbo to the intercooler is made of plastic and is known to crack under boost pressure, causing a massive lean condition. The charge pipe costs $30-$60 for an aftermarket replacement and takes about an hour to replace. On the N55 six-cylinder turbo (335i, 535i, X5 35i), vacuum leaks at the valve cover gasket are the most common cause of lean codes. The N55 valve cover is made of plastic and warps over time, allowing oil to leak onto the exhaust manifold and air to enter the crankcase. The valve cover with integrated gasket costs $200-$350 and takes 2-3 hours to replace. On both engines, also check the VANOS solenoid seals and the oil filter housing gasket.

P0300 -- Random/Multiple Cylinder Misfire

P0300 on BMW turbocharged engines is most commonly caused by failed ignition coils or worn spark plugs. BMW ignition coils have a typical lifespan of 50,000-80,000 miles, and when one fails, it usually takes out the spark plug with it. On the N55, ignition coils fail frequently enough that many owners carry a spare in the trunk. A single coil costs $20-$35 aftermarket and takes about 10 minutes to replace on the N55 (they are easily accessible on top of the engine). The N20 has coils that are slightly harder to access due to the turbo plumbing. Always replace coils and spark plugs together on the affected cylinder. On high-mileage N55 and B58 engines, carbon buildup on the intake valves from direct injection can also cause misfires -- walnut blasting the intake valves every 60,000-80,000 miles is recommended preventive maintenance.

Recommended: BMW Ignition Coil Set

Bosch and Delphi are both OEM suppliers for BMW ignition coils. Replacing all coils at once is recommended when one fails, as the others are likely near the end of their lifespan too. A full set of six coils for the N55 or B58 costs about the same as two coils from the BMW dealer, making aftermarket the clear value choice.

Bosch BMW Ignition Coil (OEM Supplier)
Pros
Cons

Verdict:

Check Price on Amazon

Affiliate link -- we earn a commission at no extra cost to you.

P0420 -- Catalyst System Efficiency Below Threshold

P0420 on BMWs typically appears after 100,000 miles and indicates the catalytic converter is no longer meeting efficiency standards. On the turbocharged N20/N55/B58 engines, the catalytic converter is integrated into the turbo downpipe assembly rather than a separate manifold-mounted cat (this is why aftermarket "catted downpipes" are the common replacement part), which makes replacement expensive -- $1,500-$3,000 for OEM. Aftermarket catted downpipes are available for $400-$800 but may not meet emissions standards in all states. Before replacing the converter, verify the issue with live O2 sensor data and check for exhaust leaks at the turbo-to-downpipe connection, as leaks there can cause false P0420 readings. On the N55, a cracked exhaust manifold is a known issue that can trigger P0420 alongside an audible ticking noise from the engine bay.

P0128 -- Coolant Temperature Below Thermostat Regulating Temperature

P0128 is one of the most common BMW codes and indicates a stuck-open thermostat. BMW uses electronically controlled thermostats on the N20, N55, and B58 engines, which are more complex and expensive than traditional wax-pellet thermostats. The thermostat housing assembly costs $80-$150 for aftermarket and $200-$350 from BMW. Replacement labor runs $200-$400 at an independent shop. On the N55, the thermostat is located behind the alternator and requires some patience to access. A stuck-open thermostat causes noticeably slower cabin heating in winter, reduced fuel economy, and can prevent the engine from reaching optimal operating temperature for oil temperature management. On turbocharged BMWs, this also affects turbo efficiency and can reduce power output slightly.

P0012 -- Intake Camshaft Position Timing Over-Retarded (Bank 1)

P0012 indicates the intake VANOS (Variable Valve Timing) on Bank 1 is not advancing properly. BMW's VANOS system uses oil pressure to adjust camshaft timing, and any issue with oil flow to the VANOS solenoids will trigger this code. The VANOS solenoids are the most common cause and cost $40-$80 each aftermarket. On the N55, there are two VANOS solenoids (intake and exhaust) that should be replaced as a pair. Before replacing them, check the engine oil level and condition -- low oil or dirty oil restricts flow to the VANOS system. On the N20, the VANOS solenoid seals are a known weak point and can be replaced separately for about $15 per seal. If P0012 persists after solenoid replacement, the VANOS actuator (cam gear) itself may have worn internal components, which is a more involved repair costing $500-$1,000.

P0015 -- Exhaust Camshaft Position Timing Over-Retarded (Bank 1)

P0015 is the exhaust-side counterpart to P0012 and indicates the exhaust VANOS is not responding correctly. The causes and fixes are nearly identical to P0012 -- VANOS solenoids, oil condition, and solenoid seals. On the N55 and B58, P0015 often appears alongside P0012, which strongly suggests an oil flow issue rather than individual solenoid failure. Start with an oil and filter change using BMW-approved 0W-30 or 5W-30 oil and see if the codes return. On the N20 engine specifically, timing chain stretch is a known issue that can trigger both P0012 and P0015. The N20 timing chain has been the subject of a class-action settlement, and BMW extended warranty coverage on some models. If you hear a rattling noise on cold start along with these VANOS codes, the timing chain and guides likely need replacement ($1,500-$3,000).

The Valve Cover Gasket Problem

BMW's N55 and N20 engines use a plastic valve cover that warps with age and heat cycles, causing the integrated gasket to fail. A leaking valve cover gasket on these engines causes oil to drip onto the exhaust manifold (creating a burning oil smell), allows air to enter the crankcase (triggering lean codes P0171/P0174), and can cause misfires if oil pools around the spark plug tubes. The valve cover is sold as a complete assembly with the gasket and typically costs $200-$350 aftermarket. This is a 2-3 hour job at a shop, costing $400-$700 total. The B58 engine uses an improved valve cover design that is less prone to this issue but can still fail on high-mileage examples.

Saving Money on BMW Repairs

BMW dealer labor rates are among the highest in the industry, often $180-$250 per hour. Independent BMW specialists charge $120-$160 per hour for the same quality of work. For parts, companies like FCP Euro and ECS Tuning specialize in BMW OEM and OE-equivalent parts at 40-60% below dealer pricing. FCP Euro also offers a lifetime replacement guarantee on all parts, including wear items like brake pads. For DIY-inclined owners, BMWs are well-documented online, with detailed repair guides available for most common jobs. Always use BMW-approved oil (meeting LL-01 specification) and do not extend oil change intervals beyond 7,500 miles. BMW's own Condition Based Service system calls for roughly 10,000 miles on 2014+ models (15,000 was the figure for pre-2014 cars, and CBS can shorten the interval further based on driving conditions) -- shorter intervals significantly reduce VANOS and turbo issues on these engines.

Frequently Asked Questions

Are BMW check engine codes more expensive to fix than other brands?

BMW repairs do tend to cost more due to higher parts prices and labor rates. However, many common BMW codes (vacuum leaks, ignition coils, VANOS solenoids, thermostat) are straightforward fixes with aftermarket parts costing $30-$150. The key to keeping costs manageable is using an independent BMW specialist rather than the dealer and sourcing parts from BMW-specific aftermarket suppliers.

What is VANOS and why does it cause so many BMW codes?

VANOS is BMW's variable valve timing system that adjusts camshaft position using oil pressure for better performance and efficiency. It causes frequent codes because the solenoids that control it are sensitive to oil quality and flow. Dirty oil, low oil levels, or worn solenoid seals restrict oil flow and trigger P0012, P0015, and related codes. Regular oil changes with BMW-approved oil and replacing VANOS solenoids every 80,000-100,000 miles prevents most VANOS-related issues.

Is the BMW N20 or N55 engine more reliable?

The N55 inline-six is generally considered more reliable than the N20 four-cylinder. The N20 has known timing chain stretch issues that can lead to engine damage if not caught early, while the N55's main weaknesses (valve cover gasket, charge pipe) are less catastrophic. The B58 (successor to the N55) is considered the most reliable of the three and has far fewer reported issues. All three engines benefit from shorter-than-recommended oil change intervals.