Pending, Stored, and Permanent OBD-II Codes Explained
Last reviewed May 2026 · Find This Code Editorial Team
When an OBD-II scanner reads your vehicle, it can report codes in three distinct states: pending, stored (also called confirmed or active), and permanent. Understanding the difference tells you how serious the fault is, whether the check engine light should be on, and how the code can be cleared.
Pending codes
A pending code means the ECM detected a fault condition once, but hasn't confirmed it yet. The OBD-II standard requires many faults to be detected on two separate drive cycles before they're considered confirmed — this prevents the system from flagging unreliable one-off readings.
While a code is pending:
- The check engine light does not turn on.
- The code is stored in memory, but only as a candidate — not a confirmed fault.
- If the fault occurs again on the next drive cycle, the code becomes confirmed (stored) and the check engine light illuminates.
- If the fault doesn't recur, the ECM may eventually clear the pending code automatically.
Pending codes are worth taking seriously even though they haven't triggered the light yet. They indicate the system has already noticed something wrong.
Stored (confirmed) codes
A stored code — sometimes called a confirmed or active code — is one the ECM has confirmed on at least two drive cycles (or in some cases, immediately on the first occurrence if the fault is severe enough). This is the state most people think of when they talk about "having a code."
When a code is stored:
- The check engine light (MIL) illuminates.
- Freeze frame data is captured — a snapshot of operating conditions at the moment the fault was confirmed.
- The code remains in memory until cleared manually (with a scanner) or until the ECM self-clears it after a set number of drive cycles without the fault recurring.
Stored codes can be cleared with a scanner even if the underlying fault still exists. If you clear a stored code without fixing the problem, it will return within a drive cycle or two.
Permanent codes
A permanent diagnostic trouble code (PDTC) was introduced in OBD-II as an additional safeguard for emissions-critical faults. Permanent codes look like stored codes, but with one critical difference: they cannot be cleared with a scanner.
The only way a permanent code clears is if the ECM itself decides the fault is resolved. That happens when:
- The underlying fault is actually repaired.
- The relevant readiness monitor runs and passes — confirming the system is now working correctly.
- The ECM automatically removes the PDTC from memory.
This matters significantly for emissions testing. If a vehicle has a permanent code, the emissions tester will detect it even if no stored codes are present and the check engine light is off. You cannot simply clear it to pass the test — you have to fix the problem and drive through a complete monitor cycle.
Why permanent codes exist
Before permanent codes, a common workaround for failing an emissions inspection was to clear all codes, drive the car briefly to satisfy the state's incomplete-monitor allowance, and pass the test without actually repairing anything. Permanent codes close that loophole — the ECM keeps its own record of confirmed emissions faults that the inspector's equipment can read regardless of whether a shop or owner cleared the codes.
How code states relate to emissions testing
| Code state | CEL on? | Fails emissions? | Clears with scanner? |
|---|---|---|---|
| Pending | No | Usually no | Yes |
| Stored / confirmed | Yes | Yes | Yes |
| Permanent (PDTC) | May be off | Yes | No — fix required |