Pending vs Confirmed Codes: Why the Light Isn't On Yet
A pending code means a fault was detected once and the system is waiting to see it again before turning on the light; a confirmed code means the fault repeated and the module is now certain enough to alert you.
OBD-II modules require most faults to be seen on two consecutive drive cycles before illuminating the malfunction indicator lamp. The first detection stores a pending code silently. If the second drive cycle reproduces the fault, the code becomes confirmed and the light comes on. If it doesn't, the pending code clears itself. This two-trip logic exists to prevent single anomalies from triggering warnings.
Most emissions-related faults follow the same escalation path:
- Drive cycle one. The monitor runs, the fault condition exceeds its threshold, and the module stores a pending code. No light. Nothing visible to the driver.
- Drive cycle two. The monitor runs again under similar conditions. If the fault repeats, the code becomes confirmed and the malfunction indicator lamp illuminates. If the fault does not repeat, the pending code is discarded.
The purpose is to filter noise. A single anomalous reading can come from a genuinely one-time condition — a tank of bad fuel, a hard bump jolting a connector, a very cold start at altitude, a hill that loaded the engine unusually. Illuminating the light for every one of those would train drivers to ignore it entirely.
The standard access modes reflect this split. Mode $07 returns pending codes. Mode $03 returns confirmed codes. Many scan tools show them on separate screens; cheap readers often show only confirmed codes, which is why a vehicle can read "no codes" while a pending fault sits in the module.
Not every fault gets two chances. Two important categories act immediately.
Severe misfire. When misfire is detected at a rate high enough to risk damaging the catalytic converter, the module does not wait for a second trip. It illuminates the malfunction indicator lamp and flashes it. A flashing check engine light means raw fuel is being pushed into a hot converter, where it can ignite and destroy the substrate — a repair typically running several hundred to well over a thousand dollars, and on some vehicles considerably more. Reduce load immediately, avoid high RPM, and get off the road as soon as it is safe. Continuing to drive normally with a flashing light is how a spark plug problem becomes an exhaust system problem.
Certain circuit and safety-relevant faults. Some faults with unambiguous electrical evidence — a circuit reading open or shorted to a rail — set on the first occurrence, because there is no plausible transient explanation for the reading.
Manufacturers also apply their own maturation logic on top of the general pattern. Some faults require more than two trips; some require a specific number of failed samples within a window rather than whole drive cycles. The two-trip rule is the framework, not a universal law.
Confirmed codes are not permanent. If the fault stops recurring, the module extinguishes the light on its own — typically after the monitor runs and passes on three consecutive drive cycles under conditions similar to those that set the code. The code itself is then retained in memory as a history record and eventually erased after a further period of fault-free operation, commonly on the order of 40 warm-up cycles, though the exact counter is manufacturer-specific.
This matters for two reasons.
First, a light that turned off by itself does not mean the problem is gone. It means the monitor passed three times. An intermittent fault will come back and the light with it. Second, it means a repair can be verified without clearing anything: fix the cause, drive it, and watch the module turn the light off on its own. That is stronger evidence than a manual clear, because the module is confirming the repair rather than you erasing the evidence.
There's also a category that does not self-clear: permanent DTCs (Mode $0A). These were added so codes could not simply be erased before an inspection. A permanent code is stored alongside a confirmed code and cannot be cleared by a scan tool at all. It only clears when the vehicle itself verifies the fault is repaired by running the relevant monitor and passing. If you clear codes but a permanent DTC remains, the vehicle will report it — and inspection programs that check Mode $0A will see it.
A pending code is the most useful thing in the module that most people never look at, because it points at a developing problem before it becomes a symptom.
Worth checking pending codes when:
- Something feels slightly off — a faint hesitation, an occasional rough start — with no light on.
- You just completed a repair and want to know whether the fault is re-detecting before the light comes back.
- You are buying a used vehicle. A cleared module with pending codes appearing is a very different picture from a genuinely clean one. Check readiness monitors at the same time — all monitors incomplete plus a recent-feeling reset is a strong signal codes were cleared shortly before you arrived.
- An inspection is coming up and you want to know whether something is brewing.
A scan tool that reads Mode $07 is required. Most Bluetooth dongles paired with a capable app do this; many parts-store counter readers do not, or do not display it. Ask specifically for pending codes, not just "any codes."
One caution: a pending code that clears itself is genuinely weak evidence. Do not replace parts based on a pending code that appeared once and never returned. Note it, and watch whether it recurs.
Both pending and confirmed codes are detections. Neither is a diagnosis, and the distinction between them says nothing about which part failed — it says only how many times the fault was seen.
A confirmed P0135 (O2 sensor heater circuit, bank 1 sensor 1) means the module detected the heater circuit behaving outside its expected range on more than one occasion. The heater element, the wiring, a connector, the fuse feeding the circuit, or the driver in the module can all produce that detection. Which one it is comes from measuring the circuit — resistance across the heater at the sensor connector, voltage at the connector with the circuit live, continuity back to the module — and the expected values are vehicle-specific.
Similarly, a pending P0420 is not "the converter is 50 percent worn." It is one instance of the downstream oxygen sensor tracking the upstream sensor more closely than the threshold allows. Exhaust leaks upstream of the sensor, a lazy sensor, a misfire loading the converter with unburned fuel, and a genuinely degraded converter all produce that pattern. The converter is the expensive answer, so it should be the last one confirmed rather than the first one assumed.
Understanding pending codes gives you a window into a fault before it costs you anything — a chance to find a loose gas cap before the light, or to confirm a repair took before driving away. Understanding the flashing-light exception is the difference between a spark plug bill and a catalytic converter bill. And understanding that the light can turn itself off keeps drivers from assuming a problem resolved when what really happened is a monitor passed three times.
- P0135O2 Sensor Heater Circuit Malfunction (Bank 1, Sensor 1)Severity level 3 of 5: Diagnose soon.
- P0171System Too Lean (Bank 1)Severity level 3 of 5: Diagnose soon.
- P0300Random/Multiple Cylinder Misfire DetectedSeverity level 4 of 5: Get it looked at now.
- P0301Cylinder 1 Misfire DetectedSeverity level 4 of 5: Get it looked at now.
- P0420Catalyst System Efficiency Below Threshold (Bank 1)Severity level 3 of 5: Diagnose soon.
- P0442Evaporative Emission System Leak Detected (Small Leak)Severity level 2 of 5: Not urgent.
- P0455Evaporative Emission System Leak Detected (Large Leak)Severity level 2 of 5: Not urgent.