BMW fault code P0420 / 29F6 (N54, N55): catalytic converter efficiency below threshold — what the code actually measures
P0420 (BMW hex 29F6) means the rear oxygen sensor's readings say the cat isn't converting. Factory framework, honest verdicts, and what an N54/N55 owner should check first.
P0420 is the emissions catch-all everyone dreads: "catalyst efficiency below threshold." BMW logs it as 29F6 — catalytic-converter conversion, overall system, below limit value. The honest framing up front: the code does not mean "your cat is dead." It means the oxygen-sensor comparison that infers cat health failed. Those are very different statements.
What the factory document says
ISTA · factory document29F6 / P0420 — Catalytic-converter conversion, overall system: below limit value (factory fault doc)Opens in your account's service knowledge — sign-in required.Honest coverage verdict: this is one of the thinner fault documents in the factory index — it's dominated by the enablement matrix and the MIL/CCM tables (MIL on, ID 34, across the N54 KWP and UDS fleet rows), with the causal work left to the measurement logic itself: the DME compares upstream and downstream oxygen-sensor behavior and flags when the rear sensor tracks the front one too closely, meaning unconverted oxygen is passing through. The doc carries the framework and the lamp behavior, not a parts list.
What usually actually causes it
Because the doc is thin, the honest layer carries more weight. Community ranking on N54/N55, paraphrased:
- **A lazy downstream O2 sensor.** Aging sensors slow down and start mimicking cat failure. Cheapest and most common false alarm — test before replacing the cat.
- **Exhaust leaks ahead of or around the sensors**, pulling in fresh air and skewing the reading.
- **A cat that genuinely lost conversion** — often *killed by something else*: sustained [misfires](../fault-code-p0300) dumping raw fuel, or oil consumption fouling the substrate. The factory single-misfire test (29CD) explicitly includes endoscope inspection of the cat for exactly this reason.
- **Tune with cat delete / high-flow cats** — the code is simply reporting reality; on a test-pipe it's expected, and the honest fix is the right hardware, not a sensor spacer.
The fix path
- Rule out exhaust leaks and sensor health first — smoke or soapy check around the downpipe flanges and sensor bungs.
- Lingering misfire codes? Fix those first ([P0300](../fault-code-p0300) / [P0301](../fault-code-p0301)) — a cat code riding a misfire is usually a symptom, not the disease.
- High-mileage, oil-hungry engine → fouling is the likely path; address consumption before (or alongside) any cat work.
- [Datalog](../reading-your-datalog) both O2 channels: a healthy cat shows a steady rear sensor while the front one switches; a tracking rear sensor is the code's mechanism, visible live.
- ReferenceBMW fault code P0300 / 29CC (N54, N55): random misfires — what it means, what actually causes it
- ReferenceBMW fault code P0301 / 29CD (N54, N55): cylinder 1 misfire — the factory test path and the honest causes
- GuidesWalnut blasting and intake valve cleaning: the GDI carbon job, factory view
- GuidesReading your datalog: RPM, boost, AFR